1 votos

Gestión de varias instalaciones de Java

Después de horas de búsqueda en Google estoy un poco deprimido con los resultados..

Para el trabajo, tengo múltiples instalaciones de Java, algunas de ellas a través de SdkMan, y algunas de ellas parecen encontrar su camino en la /Library/Java ...

Ahora el problema: Si intento iniciar cualquier archivo .jar (autocodificado o no) a través de un doble clic, sólo dice "No se ha podido abrir el archivo jar, compruebe si hay errores en la consola".

Pero si intento iniciar el mismo archivo jar desde el Terminal, funciona bien.

Sé con certeza que mi Terminal utiliza otra instalación de Java que la de MacOS 'JarLauncher.app', pero no encuentro la forma de especificar la instalación de Java para ello. En Configuración del sistema > Java, debería abrirse un panel de control de Java, pero se niega a abrirse, incluso después de pulsar el botón de reapertura varias veces.

Intenté eliminar los viejos archivos de instalación de Java con las guías que encontré en Internet, pero hasta ahora no hubo suerte.

¿Alguien sabe cómo resolver estos problemas? Es mi trabajo diario escribir pequeños archivos .jar scripts para ayudar a los colegas en sus flujos de trabajo.

Actualmente están instalados: Java8u121 a través de SDKman y la carpeta /Library/Java, y Java9 a través de la instalación normal de Oracle Intenté eliminar las otras, pero no estoy seguro de haberlas limpiado lo suficiente.

Lamentablemente no hay opción de reiniciar todo el sistema, es un portátil gestionado por la empresa, y no sé qué pasará con todos los sistemas conectados, sobre todo el ActiveDirectory Sync.

Usando MacOS Sierra 10.12.6, no se puede actualizar a High Sierra todavía.

0voto

Manrico Corazzi Puntos 6458

El /Library/Internet Plug-Ins/JavaAppletPlugin.plugin (el JRE) es el que lanza el jar ejecutable a través de 'JarLauncher.app' - y es el instalado desde Oracle - y es el último JDK instalado.

Así que si usted dice que tiene JDK 9 de Oracle, como el único de Oracle, entonces será JavaAppletPlugin.plugin de JDK 9 que se debe utilizar en este momento - que no funciona junto con JDK 8 (fuera de la caja).

Una cosa que podrías probar es instalar todos tus JDKs desde Oracle, y luego guardar uno por uno el JavaAppletPlugin.plugin de cada versión que quieras usar en una carpeta de tu elección, desde donde luego copias/sustituyes el plugin actual en /Library/Internet Plug-Ins/ - tal vez crear un pequeño Terminal script, que contenga la configuración de JAVA_HOME y la copia/sobreescritura del plugin - entonces ejecutarás este script justo antes de que quieras probar tu jar ejecutable.

EDITAR:

Creo que después de pensar un poco, que primero hay que hacer algo de limpieza.

Esto significa eliminar /Library/Internet Plug-Ins/JavaAppletPlugin.plugin y todos los JDK bajo /Library/Java/JavaVirtualMachines/ .

A continuación, descargue todos los JDKs necesarios de Oracle, e instálelos uno por uno - la versión más baja primero, y recuerde hacer una copia de seguridad del /Library/Internet Plug-Ins/JavaAppletPlugin.plugin después de cada instalación a una carpeta de su elección.

He guardado mis plugins con los nombres:

  • JavaAppletPlugin-7.0.80.plugin
  • JavaAppletPlugin-8.0.162.plugin
  • JavaAppletPlugin-9.0.4.plugin

También debería poder abrir el panel de control de java para cada JDK instalado, pero sólo para el que tiene instalado actualmente.

Ahora puedes crear un script que actualice el /Library/Internet Plug-Ins/JavaAppletPlugin.plugin - A continuación hay un rápido script que hice donde se instala el plugin JRE 7_80 (sustituya <PATH_TO_BACKUP_OF_PLUGINS> por su ruta) - que también es el panel de control de java, por lo que deberías poder abrirlo desde Configuración.

#!/bin/sh

sudo rm -rf "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin"
sudo cp -rf "<PATH_TO_BACKUP_OF_PLUGINS>/JavaAppletPlugin-7.0.80.plugin" "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin"

Si quieres un script para cada plugin, o vas a crear un scriptque tome una entrada de versión, es cosa tuya.

JavaAppletPlugin.plugin y JAVA_HOME necesitan seguirse uno al otro, tal vez usted ya tiene una manera de cambiar JAVA_HOME hoy.

La forma en que suelo configurar mi JAVA_HOME es como la siguiente, donde he añadido algunas funciones a mi .bash_profile

jdk7() {
   export JAVA_HOME=`/usr/libexec/java_home -v '1.7.*'`
   export PATH=$JAVA_HOME/bin:$PATH
}

jdk8() {
   export JAVA_HOME=`/usr/libexec/java_home -v '1.8.*'`
   export PATH=$JAVA_HOME/bin:$PATH
}

jdk9() {
   export JAVA_HOME=`/usr/libexec/java_home -v '9.*'`
   export PATH=$JAVA_HOME/bin:$PATH
}

0 votos

Esto responde definitivamente a la pregunta más importante, pero ¿podría ayudarme a crear un script, y qué ocurre si reinstalo los JDK sobre los ya existentes?

0 votos

He editado mi respuesta

0 votos

Gracias por esta detallada explicación, acabo de ponerlo todo en marcha y funciona a las mil maravillas.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X