java - obfuscator - Ejecutando ProGuard en OS X: ¿Dónde está el equivalente de Apple al rt.jar?
proguard java (3)
Estoy ejecutando ProGuard para reducir mi archivo jar. Uno de los parámetros que necesita es el tarro de tiempo de ejecución del sistema. Esto está en $JAVA_HOME/lib/rt.jar
en distribuciones de Sun, pero no en Mac OS X de Apple (v10.6 (Snow Leopard) en mi caso).
¿Hay un rt.jar para OS X?
Hay una explicación de cómo llegar al equivalente de rt.jar
en la pregunta ¿Qué debo configurar JAVA_HOME para OSX ?
La respuesta corta es usar el resultado de /usr/libexec/java_home
o establecer JAVA_HOME
en $(/usr/libexec/java_home)
y luego encontrar classes.jar
(el equivalente de OS X de rt.jar) en JAVA_HOME/bundle/Classes/classes.jar
Se llama classes.jar y está en /System/Library/Frameworks/JavaVM.framework/Classes
Mira aquí para más detalles:
http://lists.apple.com/archives/java-dev/2003/Mar/msg01530.html
Esta entrada de blog describe una forma relativamente directa de resolver el problema sin modificar la configuración de Proguard.
La entrada recomienda que se creen dos enlaces simbólicos, de modo que rt.jar
y jsse.jar
existan en la ruta que Proguard espera que aparezcan.
Estar en el directorio /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib
y ejecutar los siguientes comandos resolvió el problema por mí:
sudo ln -s ../../Classes/classes.jar rt.jar
sudo ln -s ../../Classes/jsse.jar .