Подтвердить что ты не робот

Как установить неограниченную мощность JCE для JRE 7 в MacOSX?

Я установил Oracle JRE 7 (не JDK) для MacOSX, но я не могу найти, где находятся файлы юрисдикции JCE.

Мне нужно заменить их версией без ограничений.

4b9b3361

Ответ 1

Ваш комментарий к 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.

Ответ 2

Я установил Oracle JDK, и если это поможет, каталог в моем случае был /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/security/. Ваш пробег может варьироваться, и в этом случае просто запустите find . -name local_policy.jar и посмотрите, что он появится.

Ответ 3

Это для JDK, а не JRE.


Я нахожусь на Mac, OSx Lion, и я использовал /usr/libexec/java_home, чтобы найти свой дом java

/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