¿El ProcessBuilder está consciente de las variables de entorno?
Suponga que un programa en Java (por ejemplo, my.jar) utiliza ProcessBuilder para iniciar un subproceso.
Si inicio el programa con VAR=xxx java -jar my.jar
, ¿el subproceso será consciente de que la variable de entorno VAR está configurada en xxx?
davy.ai
Según la documentación de java.lang.ProcessBuilder, el subproceso creado por ProcessBuilder hereda las variables de entorno del proceso padre (es decir, el programa de Java en este caso).
Por lo tanto, si el programa de Java se inicia con
VAR=xxx java -jar my.jar
, el subproceso creado por ProcessBuilder debería ser consciente de la variable de entorno VAR y su valor xxx. Sin embargo, es posible que el subproceso no pueda modificar el valor de VAR o crear nuevas variables de entorno.Para acceder al valor de una variable de entorno dentro del subproceso, este puede utilizar el método
System.getenv(String name)
, donde name es el nombre de la variable de entorno. Por ejemplo, para acceder al valor de VAR dentro del subproceso, este puede utilizarSystem.getenv("VAR")
.