2012-09-03 11 views
38

Zainstalowałem Oracle JRE 7 (nie JDK) dla MacOSX, ale nie mogę zlokalizować, gdzie znajdują się pliki jurysdykcji JCE.Jak zainstalować nieograniczoną moc JCE dla JRE 7 w MacOSX?

Muszę zastąpić je wersją o nieograniczonej wytrzymałości.

+0

Możliwa duplikat http://stackoverflow.com/questions/1179672/unlimited-strength-jce-policy-files –

+2

To nie jest duplikat, ponieważ JRE 7 wydaje się nie mieć Java Home lub nie jestem w stanie go znaleźć ... To jest mój problem. –

+0

Dwusekundowa wyszukiwarka Google (w terminach "macosx java home") znalazła tę stronę: http://developer.apple.com/library/mac/#qa/qa1170/_index.html. Czy w ogóle o tym pytałeś, zanim zapytasz? –

Odpowiedz

23

Twój komentarz na odpowiedź Thom jest poprawny. Ścieżka JRE to /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/, a pliki JCE są poniżej lib/security/.

Zdarzyło mi się, że zainstalowano wiele JVM, więc pomyślałem, że warto pokazać sposób sprawdzenia, czy konkretna maszyna JVM ma właściwe pliki. Są to niektóre polecenia można użyć do określenia, czy dana instalacja Java jest poprawnie skonfigurowane:

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 

Po znać ścieżkę do plików, można je zastąpić potrzebne. Należy pamiętać, że każda wersja Java może wymagać różnych bibliotek JCE. Możesz potrzebować oddzielnych słoików na 6, 7 i 8, w zależności od kompatybilności.

32

Zainstalowałem Oracle JDK, a jeśli to pomaga, katalog w moim przypadku był /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/security/. Twój przebieg może się różnić, w takim przypadku po prostu uruchom find . -name local_policy.jar i zobacz, co się pojawi.

+1

znalazłem 2: ./Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/security/local_policy.jar ./Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/security/local_policy.jar Myślę, że pierwsze były tym, czego szukałem. –

26

To jest dla JDK, a nie JRE.


Jestem na Mac OSX Lion i użyłem /usr/libexec/java_home znaleźć mój 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 

Stąd można używać tego pliku wykonywalnego i znaleźć zlokalizować te pliki

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 

Połącz to z odpowiedzią @ ngreen, aby uzyskać md5 tych plików (jeśli chcesz)

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 

I widać, że nie zastąpiłem jeszcze tych plików.

zapasowa oryginalne pliki, jeśli chcesz

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/ 

można zastąpić pliki z tego.

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) 

i uzyskanie MD5s mówi mi, czy to zadziałało

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 
+2

To jest JDK, a nie JRE. –

+0

Masz rację, nie zauważyłem tego w tytule. – Nate