Во -первых, нам нужно увеличить разрешения на выполнение пользователя для сценария, то есть
Кода -копия выглядит следующим образом:
String cmdstring = "chmod a+x test.sh";
Process proc = runtime.getRuntime (). Exec (cmdstring);
proc.waitfor ();
cmdstring = "bash test.sh";
proc = runtime.getruntime (). Exec (cmdstring);
// Обратите внимание на следующие операции
String ls_1;
BufferedReader BufferedReader = New BufferedReader (New InputStreamReader (proc.getInputStream ());
while ((ls_1 = buffered reader.readline ())! = null);
BufferedReader.Close ();
proc.waitfor ();
Зачем вам нужна вышеупомянутая операция?
Причина в том, что вывод исполняемой программы может быть относительно большим, в то время как выходной буфер окна прогона ограничен, что приведет к тому, что ожидание будет блокироваться все время. Решение состоит в том, чтобы использовать методы GetInputStream и GetErrorStream, предоставленные классом процесса, предоставленным Java, чтобы позволить виртуальной машине Java перехватывать стандартный вывод и выходной сигнал программы CORD и прочитать содержимое в выходном буфере перед waitfor () командование
Я надеюсь, что вам понравится эта статья.