Primeiro, precisamos aumentar as permissões de execução do usuário para o script, ou seja,
A cópia do código é a seguinte:
String cmdstring = "chmod a+x test.sh";
Processo proc = runtime.getRuntime (). Exec (cmdString);
proc.waitfor ();
cmdstring = "Bash test.sh";
Proc = Runtime.GetRuntime (). EXEC (CMDSTRING);
// preste atenção às seguintes operações
string ls_1;
BufferReader buffaredReader = new BufferredReader (new InputStreamReader (proc.getInputStream ());
while ((ls_1 = bufferredreader.readline ())! = null);
BufferredReader.Close ();
proc.waitfor ();
Por que você precisa da operação acima?
O motivo é: a saída do programa executável pode ser relativamente grande, enquanto o buffer de saída da janela de execução é limitado, o que fará com que a espera seja bloqueada o tempo todo. A solução é usar os métodos GetInputStream e GetErrorStream fornecidos pela classe de processo fornecida pelo Java para permitir que a máquina virtual Java intercepte a saída padrão e a saída do programa chamado e leia o conteúdo no buffer de saída antes do waitfor () comando.
Espero que você possa gostar deste artigo.