まず、スクリプトのユーザーの実行権限を増やす必要があります。つまり、
コードコピーは次のとおりです。
文字列cmdstring = "chmod a+x test.sh";
process proc = runtime.getRuntime()。exec(cmdstring);
proc.waitfor();上記のコマンドが実行されるまで
cmdstring = "bash test.sh";
proc = runtime.getRuntime()。exec(cmdstring);
//次の操作に注意してください
文字列ls_1;
BufferedReader BufferedReader = new BufferedReader(new inputStreamReader(proc.getInputStream());
while((ls_1 = bufferedreader.readline())!= null);
bufferedreader.close();
proc.waitfor();
なぜ上記の操作が必要なのですか?
その理由は、実行可能なプログラムの出力が比較的大きい場合があり、実行ウィンドウの出力バッファーは限られているため、常にブロックされます。解決策は、Javaが提供するプロセスクラスによって提供されるGetInputStreamおよびGetErrorStreamメソッドを使用して、Java仮想マシンが呼び出されたプログラムの標準出力とエラー出力を傍受し、Waitfor()の前に出力バッファーの内容を読み取ることです。指示。
この記事が気に入っていただければ幸いです。