Запуск ProGuard на OS X: где Apple эквивалентна rt.jar? - PullRequest
26 голосов
/ 06 мая 2010

Я бегу ProGuard , чтобы сжать мой файл фляги. Одним из параметров, который ему нужен, является системный jar времени выполнения. Это в $JAVA_HOME/lib/rt.jar на дистрибутивах Sun, но не на Apple Mac OS X (v10.6 (Snow Leopard) в моем случае).

Есть ли rt.jar для OS X?

Ответы [ 4 ]

22 голосов
/ 06 мая 2010

Он называется classes.jar и находится в /System/Library/Frameworks/JavaVM.framework/Classes

Подробности смотрите здесь:

http://lists.apple.com/archives/java-dev/2003/Mar/msg01530.html

12 голосов
/ 06 августа 2012

Эта запись в блоге описывает относительно простой способ решения проблемы без изменения конфигурации 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 .
4 голосов
/ 20 мая 2011

Существует некоторое объяснение того, как добраться до rt.jar эквивалента в Что мне следует установить для JAVA_HOME в OSX вопрос.

Краткий ответ - использовать результат /usr/libexec/java_home или установить JAVA_HOME на $(/usr/libexec/java_home), а затем найти classes.jar (эквивалент OST rt.jar) на JAVA_HOME/bundle/Classes/classes.jar

0 голосов
/ 25 марта 2019

В моей системе (Mojave 10.14.3 с JDK1.8) нет classes.jar, за исключением кэшей Gradle (~/.gradle/caches/) Однако есть rt.jar в /Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home/jre/lib/rt.jar. Я связал его и jsse.jar так же, как Хенрик из папки Contents/Home/lib:

➜  lib sudo ln -s ../jre/lib/rt.jar 
➜  lib sudo ln -s ../jre/lib/jsse.jar

и Proguard теперь работает.

...