El ejemplo de este artículo describe cómo Java ejecuta comandos de Linux. Compártelo con todos para tu referencia. El método de implementación específico es el siguiente:
Copie el código de código de la siguiente manera:
la clase pública StreamGobbler extiende el hilo {
Flujo de entrada es;
Tipo de cadena;
public StreamGobbler (InputStream es, tipo cadena) {
this.is = es;
este.tipo = tipo;
}
ejecución pública vacía() {
intentar {
InputStreamReader isr = nuevo InputStreamReader(es);
BufferedReader br = nuevo BufferedReader(isr);
Línea de cadena = nula;
mientras ((línea = br.readLine()) != nulo) {
si (tipo.equals("Error")) {
System.out.println("Error:" + línea);
} demás {
System.out.println("Depurar:" + línea);
}
}
} captura (IOException ioe) {
ioe.printStackTrace();
}
}
}
shell vacío privado (Cadena cmd)
{
Cadena[] cmds = { "/bin/sh", "-c", cmd };
Proceso de proceso;
intentar
{
proceso = Runtime.getRuntime().exec(cmds);
StreamGobbler errorGobbler = new StreamGobbler(process.getErrorStream(), "Error");
StreamGobbler salidaGobbler = new StreamGobbler(process.getInputStream(), "Salida");
errorGobbler.start();
salidaGobbler.start();
intentar
{
proceso.waitFor();
}
captura (Excepción interrumpida e)
{
e.printStackTrace();
}
}
captura (IOException e)
{
e.printStackTrace();
}
}
El parámetro cmd es un comando de Linux. Sólo se puede ejecutar un comando a la vez.
1. Notas sobre Java Runtime.exec():
① Lea siempre el flujo de datos antes de llamar al método waitFor() ② Lea siempre primero el flujo de error estándar y luego lea el flujo de salida estándar
2. La mejor manera de ejecutar comandos del sistema es escribir un archivo bat o un script de shell.
Espero que este artículo sea útil para la programación Java de todos.