2012-09-03 20 views
38

Tôi đã cài đặt Oracle JRE 7 (không phải JDK) cho MacOSX nhưng tôi không thể xác định vị trí đặt các tập tin thẩm quyền JCE.Làm thế nào để cài đặt sức mạnh không giới hạn JCE cho JRE 7 trong MacOSX?

Tôi cần thay thế chúng bằng phiên bản sức mạnh không giới hạn.

+0

có thể trùng lặp của http://stackoverflow.com/questions/1179672/unlimited-strength-jce-policy-files –

+2

Đây không phải là một bản sao vì JRE 7 dường như không có Trang chủ Java hoặc tôi không thể tìm thấy nó ... Đây là vấn đề của tôi. –

+0

Google hai giây (đối với các điều khoản 'trang chủ java macosx') đã tìm thấy trang web này: http://developer.apple.com/library/mac/#qa/qa1170/_index.html. Bạn đã nghiên cứu điều này trước khi hỏi? –

Trả lời

23

Nhận xét của bạn về câu trả lời của Thom là chính xác. Đường dẫn JRE là /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/ và các tệp JCE sau đó là theo số lib/security/.

Tôi tình cờ có nhiều JVM được cài đặt, vì vậy tôi nghĩ rằng nó đáng giá để hiển thị cách kiểm tra xem một JVM cụ thể có tệp chính xác hay không. Đây là một số lệnh bạn có thể sử dụng để xác định xem một bản cài đặt Java cụ thể có được định cấu hình chính xác hay không:

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 

Khi bạn biết đường dẫn đến tệp, bạn có thể thay thế chúng khi cần. Hãy nhớ rằng mỗi phiên bản Java có thể yêu cầu các thư viện JCE khác nhau. Bạn có thể cần các lọ riêng biệt cho 6, 7 và 8, tùy thuộc vào khả năng tương thích.

32

Tôi đã cài đặt Oracle JDK và nếu nó giúp, thư mục trong trường hợp của tôi là /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/security/. Số dặm của bạn có thể thay đổi, trong trường hợp này chỉ cần chạy find . -name local_policy.jar và xem số tiền đó tăng lên.

+1

Tôi tìm thấy 2: ./Library/Internet Trình cắm/JavaAppletPlugin.plugin/Nội dung/Trang chủ/lib/security/local_policy.jar ./Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Nội dung/Trang chủ/jre/lib/security/local_policy.jar Tôi nghĩ rằng linh sam là những gì tôi đang tìm kiếm. –

26

Điều này dành cho JDK, không phải là JRE.


Tôi đang trên một máy Mac, OSX Lion và tôi sử dụng /usr/libexec/java_home để tìm nhà java của tôi

/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 

Từ đây bạn có thể sử dụng thực thi này và tìm đến vị trí các file

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 

Và kết hợp điều đó với câu trả lời của @ ngreen để nhận được md5 của những tệp này (nếu bạn muốn)

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 

Và bạn có thể thấy tôi chưa thay thế các tệp này.

Sao lưu các tập tin ban đầu nếu bạn muốn

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/ 

Bạn có thể thay thế các tập tin với điều này.

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) 

Và nhận được MD5s nói với tôi nếu nó làm việc

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

Đây là JDK không phải là JRE. –

+0

Bạn nói đúng, tôi không nhận thấy rằng trong tiêu đề. – Nate