Agregar variables ambientales programáticamente al proceso actual [cerrado]
Frecuentes
Visto 69 equipos
2
La intención principal es establecer las variables de entorno a través del código Java.
Process process = Runtime.getRuntime().exec("export MY_ENV=123");
Siempre devuelve un nuevo proceso. Pero quiero que se ejecute para el proceso actual... ¿Hay alguna forma de agregar la salida al proceso actual?
2 Respuestas
3
Utilice la herramienta ProcessBuilder
inheritIO
le permite conectar las secuencias del proceso iniciado con el proceso actualwaitFor
le permite esperar a que finalice el proceso externo
Ejemplo:
new ProcessBuilder("/bin/ls").inheritIO()
.start()
.waitFor();
Respondido 07 Oct 14, 14:10
¡¡El métodoHeredarIo() funcionó a las mil maravillas!! - shashantrika
0
El Process
regresado de la exec
La llamada contiene tres flujos:
process.getOutputStream()
que, si escribe, se 'encauzará' al proceso en ejecuciónprocess.getInputStream()
que, si se lee, contendrá la salida estándar (ells
salida)process.getErrorStream()
whihc, si se lee, contendrá la salida de error estándar (mensajes de error de la ejecuciónls
, Si alguna).
Es su responsabilidad como programador leer estos flujos y enviarlos a la salida de su programa, si eso es lo que desea.
Asimismo, debe comprobar la process.exitValue()
si quieres conseguir eso también.
es algo común configurar subprocesos separados para monitorear las transmisiones Stdout y Stderr
Respondido 07 Oct 14, 14:10
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas java runtime.exec or haz tu propia pregunta.
Vea también Cuando Runtime.exec () no para muchos buenos consejos sobre cómo crear y manejar un proceso correctamente. Entonces ignoralo se refiere a
exec
y usar unProcessBuilder
para crear el proceso. - Andrew ThompsonEsto ha sido respondido aquí. No es una buena idea cambiar toda la pregunta de esa manera. Le sugiero que revierta su edición. - aioobe