web-dev-qa-db-ja.com

MacOSXでJRE 7に無制限の強度のJCEをインストールする方法は?

MacOSX用にOracle JRE 7(JDKではない)をインストールしましたが、JCE管轄ファイルが配置されている場所が見つかりません。

それらを無制限の強度バージョンに置き換える必要があります。

39

Thom の答えに対するあなたのコメントは正しいです。 JREパスは/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/、JCEファイルはlib/security/

複数のJVMがインストールされているので、特定のJVMに正しいファイルがあるかどうかを確認する方法を示す価値があると思いました。これらは、特定のJavaインストールが正しく構成されているかどうかを判別するために使用できるコマンドです。

find ~/Downloads/UnlimitedJCEPolicy -name *.jar |xargs md5
cd /Library/Java/JavaVirtualMachines/  # -OR-
cd '/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/'
find . \( -name local_policy.jar -or -name US_export_policy.jar \) |xargs md5

ファイルへのパスがわかれば、必要に応じてファイルを置き換えることができます。 Javaの各バージョンには異なるJCEライブラリが必要な場合があります。互換性に応じて、6、7、および8に別々のjarが必要になる場合があります。

24
ngreen

Oracle JDKをインストールしました。それが役立つ場合、私の場合のディレクトリは/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/security/。走行距離は異なる場合があります。その場合は、単にfind . -name local_policy.jarそして、それがどうなるかを見てください。

32
Thom

これは、JREではなくJDK用です。


私はMac、OSx Lionを使用しています /usr/libexec/Java_home 私のJava home

/usr/libexec/Java_home -V
# Matching Java Virtual Machines (3):
#     1.7.0_51, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home
#     1.6.0_65-b14-462, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
#     1.6.0_65-b14-462, i386:   "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
# 
# /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home

/usr/libexec/Java_home
# /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home

/usr/libexec/Java_home -v 1.6
# /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

/usr/libexec/Java_home -v 1.7
# /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home

ここから、この実行可能ファイルを使用して、これらのファイルを見つけることができます

find $(/usr/libexec/Java_home -v 1.7) -name local_policy.jar
# /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/security/local_policy.jar

find $(/usr/libexec/Java_home -v 1.7) -name US_export_policy.jar
# /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/security/US_export_policy.jar

そして、これらを@ngreenの回答と組み合わせて、これらのファイルのmd5を取得します(必要な場合)。

find ~/Downloads/UnlimitedJCEPolicy -name *.jar |xargs md5
# MD5 (/Users/nperry/Downloads/UnlimitedJCEPolicy/local_policy.jar) = 9dd69bcc7637d872121880c35437788d
# MD5 (/Users/nperry/Downloads/UnlimitedJCEPolicy/US_export_policy.jar) = 3bb2e88a915b3cb003ca185357a92c16

find $(/usr/libexec/Java_home -v 1.7) -name local_policy.jar | xargs md5
# MD5 (/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/security/local_policy.jar) = f41ab8f64b1fa13fec7276579c420951

find $(/usr/libexec/Java_home -v 1.7) -name US_export_policy.jar | xargs md5
# MD5 (/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/security/US_export_policy.jar) = d5d126ae15abecb7d6e3a28b0d57543e

そして、これらのファイルをまだ置き換えていないことがわかります。

必要に応じて元のファイルをバックアップします

mkdir ~/Downloads/JCEPolicy-originals-1.7/
cp $(find $(/usr/libexec/Java_home -v 1.7) -name local_policy.jar)     ~/Downloads/JCEPolicy-originals-1.7/
cp $(find $(/usr/libexec/Java_home -v 1.7) -name US_export_policy.jar) ~/Downloads/JCEPolicy-originals-1.7/

これでファイルを置き換えることができます。

Sudo cp ~/Downloads/UnlimitedJCEPolicy/local_policy.jar $(find $(/usr/libexec/Java_home -v 1.7) -name local_policy.jar)
Sudo cp ~/Downloads/UnlimitedJCEPolicy/US_export_policy.jar $(find $(/usr/libexec/Java_home -v 1.7) -name US_export_policy.jar)

そして、MD5を取得することで、機能するかどうかがわかります

find $(/usr/libexec/Java_home -v 1.7) -name local_policy.jar | xargs md5
# MD5 (/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/security/local_policy.jar) = 9dd69bcc7637d872121880c35437788d

find $(/usr/libexec/Java_home -v 1.7) -name US_export_policy.jar | xargs md5
# MD5 (/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/security/US_export_policy.jar) = 3bb2e88a915b3cb003ca185357a92c16
26
Nate