0
當我試圖在Linux shell中運行以下shell腳本,從Java執行Linux的sh文件與參數文件作爲輸入,寫輸出到.txt文件
cd /home/fpalma/Project/resources/yices/linux64bit/
bash
chmod a+x yices
./yices /home/fpalma/Project/out/SMT.ys > /home/fpalma/Project/out/SMT.txt
正在運行和發電該文本文件作爲yices可執行文件的輸出。但是,當我從Java中使用的代碼運行相同的shell腳本,
String command = mainGUI.PROJECT_PATH+"resources/"+"yices.sh";
process = Runtime.getRuntime().exec(command);
process.waitFor();
或
String command = mainGUI.PROJECT_PATH+"resources/"+"yices.sh";
pb = new ProcessBuilder(command);
run = Runtime.getRuntime();
Process p = pb.start();
它也運行,但不會退出,除非我退出Java編譯器本身,它不生成文本輸出文件。有什麼建議麼???
目標:我的目標是使用輸入參數文件從java運行可執行文件,然後使用'>'運算符生成輸出文本文件。
你在腳本文件中調用'bash'的目的是什麼? – marc
如果您的命令產生大量輸出並且您沒有讀取它,則可能會停止執行,直到您讀取輸出爲止。嘗試重定向輸出和/或從過程對象(它連接到子過程的輸出流)上可用的getInputStream()中讀取。 – Lynch