Primero, necesitamos aumentar los permisos de ejecución del usuario para el script, es decir,
La copia del código es la siguiente:
Cadena cmdString = "chmod a+x test.sh";
Proceso proc = runtime.getRuntime (). Exec (cmdString);
proc.waitfor ();
cmdString = "bash test.sh";
proc = runtime.getRuntime (). Exec (cmdString);
// Presta atención a las siguientes operaciones
cadena ls_1;
BufferedReader BufferedReader = new BufferedReader (new InputStreamReader (proc.getInputStream ());
while ((ls_1 = bufferedReader.readline ())! = NULL);
BufferedReader.close ();
proc.Waitfor ();
¿Por qué necesita la operación anterior?
La razón es: la salida del programa ejecutable puede ser relativamente grande, mientras que el búfer de salida de la ventana de ejecución es limitado, lo que hará que Waitfor se bloquee todo el tiempo. La solución es utilizar los métodos GetInputStream y GetErrorStream proporcionados por la clase de proceso proporcionada por Java para permitir que la máquina virtual de Java intercepte la salida estándar y la salida de error del programa llamado, y lea el contenido en el búfer de salida antes de Waitfor () dominio.
Espero que te pueda gustar este artículo.