_JAVA_OPTIONS Variable de entorno en Java

Mohd Mohtashim Nawaz 12 octubre 2023
  1. Tipos de opciones de Java
  2. Variable de entorno _JAVA_OPTIONS en Java
  3. Variable de entorno JAVA_TOOL_OPTIONS en Java
  4. Diferencia entre JAVA_TOOL_OPTIONS y JDK_JAVA_OPTIONS en Java
  5. Conclusión
_JAVA_OPTIONS Variable de entorno en Java

_JAVA_OPTIONS es una variable de entorno que puede utilizar para pasar las opciones de Java a un proceso JVM. Las opciones de Java pasadas son tratadas de manera similar a los argumentos de la línea de comando por la máquina virtual de Java.

En este artículo, entenderemos los diferentes tipos de opciones de Java. También veremos las _JAVA_OPTIONS y las JAVA_TOOL_OPTIONS, la diferencia entre las variables de entorno JDK_JAVA_OPTIONS y JAVA_TOOL_OPTIONS.

Tipos de opciones de Java

Java define tres tipos diferentes de opciones. Java diferencia entre las opciones según su soporte en diferentes versiones de Java y su uso.

Entendamos cada una de las categorías de estas opciones.

  1. Opciones estándar: Java garantiza que todas las versiones de Java admitan opciones estándar. Java permite el uso de estas opciones para acciones comunes como:
    1. Configuración de la variable classpath.
    2. Comprobación de la versión de Java Runtime Environment (JRE).
    3. Alternar la salida detallada, etc.
  2. Opciones adicionales: Java no garantiza el soporte de este tipo de opciones en todas las versiones. Estas opciones están específicamente relacionadas con JavaHotSpot Virtual Machine y pueden cambiar.
    Java usa estas opciones para establecer variables específicas.
  3. Opciones avanzadas: Java proporciona opciones avanzadas para desarrolladores. Los desarrolladores pueden usar estas opciones para ajustar JVM, JRE, JIT y Garbage Collector.

Hay cuatro tipos diferentes de opciones avanzadas. Estos se dan de la siguiente manera.

  1. Opciones de tiempo de ejecución: los desarrolladores pueden usar estas opciones para ajustar el tiempo de ejecución de JVM.
  2. Opciones del compilador JIT: los desarrolladores pueden usar estas opciones para controlar el compilador Java Just In Time (JIT).
  3. Opciones de servicio: Java define estas opciones para depurar y recopilar información del sistema.
  4. Opciones de recolección de basura: los desarrolladores pueden controlar el mecanismo de recolección de basura de Java utilizando estas opciones.

Variable de entorno _JAVA_OPTIONS en Java

Java define varias variables de entorno para pasar las opciones de Java a la JVM durante la ejecución de un proceso. El _JAVA_OPTIONS es una de esas variables de entorno.

Java trata los argumentos que pasa usando esta variable de entorno de forma similar a los argumentos de la línea de comandos.

De hecho, según la documentación de Java de Oracle, Java proporciona estas opciones para que los argumentos de la línea de comandos se puedan pasar a los programas en aquellos entornos de ejecución donde no está disponible una línea de comandos directa.

Puede pasar múltiples argumentos donde cada argumento esté separado por un espacio en blanco. Si su argumento contiene espacios en blanco, debe encerrarlo entre comillas.

Debe tener cuidado al usar _JAVA_OPTIONS porque la ejecución del programa fallará si los argumentos no son válidos.

Veamos un ejemplo de cómo pasar la opción de la variable para habilitar el seguimiento del registro.

export _JAVA_OPTIONS = '-Dsun.java2d.trace=log'

Variable de entorno JAVA_TOOL_OPTIONS en Java

El JAVA_TOOL_OPTIONS es el sucesor del _JAVA_OPTIONS. La variable de entorno _JAVA_OPTIONS no está estandarizada en la especificación JVM. Por lo tanto, diferentes proveedores tienen sus nombres para esta variable.

Sin embargo, la variable JAVA_TOOL_OPTIONS está estandarizada en la especificación JVM. Siempre debes preferirlo a las _JAVA_OPTIONS.

Esto se debe a que maneja mejor los problemas de espacios en blanco y las citas.

Diferencia entre JAVA_TOOL_OPTIONS y JDK_JAVA_OPTIONS en Java

JAVA_TOOL_OPTIONS y JDK_JAVA_OPTIONS son muy similares, ya que Java permite usar ambas variables de entorno para pasar las opciones de Java a JVM.

Como ya hemos visto, todas las reglas y métodos para pasar argumentos utilizando JAVA_TOOL_OPTIONS también se aplican a JDK_JAVA_OPTIONS.

Sin embargo, la principal diferencia entre estas variables es la siguiente.

  1. El iniciador de Java lee los argumentos pasados ​​usando JDK_JAVA_OPTIONS. Por lo tanto, no podemos pasar opciones que hagan que el lanzador salga y especifique JAR o la clase principal.

Por lo tanto, podemos usar esta variable para pasar opciones utilizadas durante el tiempo de ejecución en el nivel del lanzador.

  1. El compilador de Java y el JAR también leen JAVA_TOOL_OPTIONS. Por lo tanto, podemos usar esta variable para establecer opciones para ajustar la ejecución.

Por ejemplo, podemos establecer banderas usando esta variable.

Conclusión

Este artículo ha discutido las variables de entorno JAVA_TOOL_OPTIONS, JDK_JAVA_OPTIONS y _JAVA_OPTIONS de Java. También hemos discutido las diferencias entre el uso de estas variables de entorno.