Pregunta

Estoy corriendo ProGuard para reducir el tamaño de mi archivo jar. Uno de los parámetros que necesita es frasco de tiempo de ejecución del sistema. Esto es al $JAVA_HOME/lib/rt.jar sobre las distribuciones de Sun, pero no en la de Apple Mac OS X (v10.6 (Snow Leopard) en mi caso).

¿Hay un rt.jar para OS X?

¿Fue útil?

Solución

Se llama classes.jar y está bajo /System/Library/Frameworks/JavaVM.framework/Classes

Mira aquí para más detalles:

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

Otros consejos

Esta entrada de blog describe una forma relativamente recta de avance para resolver el problema sin modificar la configuración Proguard.

La entrada recomienda que se crean dos enlaces simbólicos, por lo que existen rt.jar y jsse.jar en el camino que les espera a Proguard.

Permanente en el directorio /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib y ejecutando los siguientes comandos resuelve el problema para mí:

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

Hay alguna explicación de cómo llegar al equivalente rt.jar en el ¿Qué debo configurar JAVA_HOME para que en cuestión OSX .

La respuesta corta es utilizar el resultado de /usr/libexec/java_home o al conjunto JAVA_HOME a $(/usr/libexec/java_home) y luego encontrar classes.jar (el equivalente de OS X rt.jar) en JAVA_HOME/bundle/Classes/classes.jar

En mi sistema (10.14.3 Mojave con JDK1.8), no hay classes.jar excepto en cachés Gradle (~/.gradle/caches/). Hay, sin embargo, un rt.jar en /Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home/jre/lib/rt.jar. He vinculado y jsse.jar de la misma manera como Henrik desde la carpeta Contents/Home/lib:

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

y Proguard trabaja ahora.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top