"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo solucionar los problemas de redirección de salida utilizando el tiempo de ejecución de Java?

¿Cómo solucionar los problemas de redirección de salida utilizando el tiempo de ejecución de Java?

Publicado el 2024-11-07
Navegar:523

How to Address Output Redirection Issues Using Java\'s Runtime?

Resolviendo el problema de redirección de salida con el método exec() de Runtime

En Java, utilizar Runtime.getRuntime().exec() para ejecutar un comando permite capturar el proceso flujos de salida y de error. Sin embargo, en los casos en los que se desea redirigir la salida, este método por sí solo puede resultar ineficaz.

El problema: la salida no se redirige

Cuando se emplea Runtime.getRuntime().exec() con comandos que función de redirección de salida, como > , la operación de redirección podría fallar. Es posible que el archivo de destino no se cree y que el flujo de salida permanezca sin redirigir.

La solución: emplear ProcessBuilder

Para redirigir correctamente la salida, considere utilizar ProcessBuilder en su lugar. Esta clase ofrece un enfoque más granular para la creación de procesos, permitiendo la especificación de la salida y la redirección del flujo de errores.

A continuación se explica cómo usar ProcessBuilder para la redirección de salida:

ProcessBuilder builder = new ProcessBuilder("sh", "somescript.sh");
builder.redirectOutput(new File("out.txt"));
builder.redirectError(new File("out.txt"));
Process p = builder.start(); // may throw IOException

Al utilizar ProcessBuilder, puede redirigir tanto la salida estándar como los flujos de error estándar al archivo deseado, asegurando que se capture la salida del comando.

Declaración de liberación Este artículo se reimprime en: 1729728181 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3