Domanda

Io corro ProGuard a ridursi il mio file jar. Uno dei parametri di cui ha bisogno è vaso di esecuzione del sistema. Questo è a $JAVA_HOME/lib/rt.jar sulle distribuzioni di Sun, ma non su Apple Mac OS X (versione 10.6 (Snow Leopard) nel mio caso).

C'è un rt.jar per OS X?

È stato utile?

Soluzione

Si chiama classes.jar ed è sotto /System/Library/Frameworks/JavaVM.framework/Classes

Guardate qui per i dettagli:

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

Altri suggerimenti

questo blog descrive un modo relativamente straight-forward per risolvere il problema senza modificare la configurazione Proguard.

La voce raccomanda che si creano due collegamenti simbolici, in modo che rt.jar e jsse.jar esiste nel percorso che Proguard si aspetta che.

In piedi nella directory /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib e eseguendo i seguenti comandi risolto il problema per me:

sudo ln -s ../../Classes/classes.jar rt.jar
sudo ln -s ../../Classes/jsse.jar .

C'è una spiegazione di come arrivare al rt.jar equivalente nella Cosa devo impostare JAVA_HOME su OSX domanda.

La risposta breve è quella di utilizzare il risultato di /usr/libexec/java_home o per JAVA_HOME insieme a $(/usr/libexec/java_home) e poi trovare classes.jar (l'OS X equivalente di rt.jar) a JAVA_HOME/bundle/Classes/classes.jar

Sul mio sistema (Mojave 10.14.3 con JDK1.8), non v'è alcuna classes.jar se non in cache Gradle (~/.gradle/caches/). V'è, tuttavia, un rt.jar in /Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home/jre/lib/rt.jar. Ho collegato e jsse.jar nello stesso modo come Henrik dalla cartella Contents/Home/lib:

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

e Proguard ora funziona.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top