Saltar al contenido

Diferencia entre _JAVA_OPTIONS, JAVA_TOOL_OPTIONS y JAVA_OPTS

Solución:

Prácticamente lo ha logrado, excepto que estas opciones se recogen incluso si inicia JVM en proceso a través de una llamada a la biblioteca.

El hecho de que _JAVA_OPTIONS no está documentado sugiere que no se recomienda usar esta variable y, de hecho, he visto a personas abusar de ella al establecerla en su ~/.bashrc. Sin embargo, si desea llegar al fondo de este problema, puede verificar la fuente de Oracle HotSpot VM (por ejemplo, en OpenJDK7).

También debe recordar que no hay garantía de que otras máquinas virtuales tengan o seguirán teniendo soporte para variables no documentadas.

ACTUALIZACIÓN 2015-08-04: para ahorrar cinco minutos a las personas que proceden de los motores de búsqueda, _JAVA_OPTIONS triunfa sobre los argumentos de la línea de comandos, que a su vez triunfan JAVA_TOOL_OPTIONS.

Hay una diferencia más: _JAVA_OPTIONS es específico de Oracle. IBM JVM está utilizando IBM_JAVA_OPTIONS en lugar de. Esto probablemente se hizo para poder definir opciones específicas de la máquina sin colisiones. JAVA_TOOL_OPTIONS es reconocido por todas las máquinas virtuales.

JAVA_OPTS no tienen ningún manejo especial en JVM.

Y de acuerdo con https://bugs.openjdk.java.net/browse/JDK-4971166 el JAVA_TOOL_OPTIONS está incluido en la especificación estándar de JVMTI, hace un mejor manejo de los espacios entre comillas y siempre debe preferirse en lugar de los Hotspot específicos no documentados _JAVA_OPTIONS.

También tenga en cuenta que el uso de estos imprime un mensaje adicional a la salida estándar que no se puede suprimir.


Como señaló @ryenus, desde JDK 9+, hay JDK_JAVA_OPTIONS como reemplazo preferido, consulte ¿Cuál es la diferencia entre JDK_JAVA_OPTIONS y JAVA_TOOL_OPTIONS cuando se usa Java 11?

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *