我正在運行ProGuard來縮小我的jar文件。它需要的一個參數是系統的運行時jar。這是在Sun發行版上的$JAVA_HOME/lib/rt.jar
,但不是在蘋果的Mac上 OS X(v10.6(Snow Leopard))。在OS X上運行ProGuard:蘋果公司等於rt.jar在哪裏?
是否有一個用於OS X的rt.jar?
我正在運行ProGuard來縮小我的jar文件。它需要的一個參數是系統的運行時jar。這是在Sun發行版上的$JAVA_HOME/lib/rt.jar
,但不是在蘋果的Mac上 OS X(v10.6(Snow Leopard))。在OS X上運行ProGuard:蘋果公司等於rt.jar在哪裏?
是否有一個用於OS X的rt.jar?
這就是所謂的classes.jar,它是下/System/Library/Frameworks/JavaVM.framework/Classes
看看這裏的細節:
http://lists.apple.com/archives/java-dev/2003/Mar/msg01530.html
有怎樣一些解釋在What should I set JAVA_HOME to on OSX問題中獲得rt.jar
等價物。
簡短的回答是使用結果的/usr/libexec/java_home
或設置JAVA_HOME
到$(/usr/libexec/java_home)
,然後在JAVA_HOME/bundle/Classes/classes.jar
This blog entry描述了一個相對直接的方式找到classes.jar
(在OS X相當於rt.jar中的)來解決該問題無需修改Proguard配置。
該條目建議創建兩個符號鏈接,以使rt.jar
和jsse.jar
存在於Proguard期望它們的路徑中。
在/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib
目錄站在運行以下命令解決了我的問題:
sudo ln -s ../../Classes/classes.jar rt.jar
sudo ln -s ../../Classes/jsse.jar .