tutorial obfuscator how dontwarn java macos proguard

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



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 .