it-swarm.com.de

Wie installiere ich JCE für JRE 7 mit unbegrenzter Stärke unter MacOSX?

Ich habe Oracle JRE 7 (nicht JDK) für MacOSX installiert, kann jedoch nicht feststellen, wo sich die JCE-Zuständigkeitsdateien befinden.

Ich muss sie durch die Version mit unbegrenzter Stärke ersetzen.

39

Ihr Kommentar zu Thom s Antwort ist korrekt. Der JRE-Pfad lautet /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/ und die JCE-Dateien befinden sich dann unter lib/security/.

Ich habe zufällig mehrere JVMs installiert, daher dachte ich, es lohnt sich, zu prüfen, ob eine bestimmte JVM die richtigen Dateien enthält. Mit diesen Befehlen können Sie feststellen, ob eine gegebene Java Installation korrekt konfiguriert ist:

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

Sobald Sie den Pfad zu den Dateien kennen, können Sie sie nach Bedarf ersetzen. Beachten Sie, dass für jede Version von Java möglicherweise andere JCE-Bibliotheken erforderlich sind. Je nach Kompatibilität sind möglicherweise separate JARs für 6, 7 und 8 erforderlich.

24
ngreen

Ich habe das Oracle JDK installiert und wenn es hilft, war das Verzeichnis in meinem Fall /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/security/. Ihr Kilometerstand kann variieren. Führen Sie in diesem Fall einfach find . -name local_policy.jar und sehen, was es auftaucht.

32
Thom

Dies ist für das JDK, nicht für das JRE .


Ich bin auf einem Mac, OSx Lion und habe /usr/libexec/Java_home um mein Java home zu finden

/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

Von hier aus können Sie diese ausführbare Datei verwenden und nach diesen Dateien suchen

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

Und kombinieren Sie dies mit der Antwort von @ ngreen, um die MD5 dieser Dateien zu erhalten (wenn Sie möchten).

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

Und Sie können sehen, dass ich diese Dateien noch nicht ersetzt habe.

Sichern Sie die Originaldateien, wenn Sie möchten

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/

Sie können die Dateien dadurch ersetzen.

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)

Und wenn ich die MD5 bekomme, erfahre ich, ob es funktioniert hat

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