[英]Calling a simple shell script from java is not working
我的Shell腳本名為“ hello”
#This is a shell script
echo "Hello Shell World!"
我的Java代碼,
Runtime.getRuntime().exec(new String[]{"./hello"});
我的Java代碼已正確執行,但是看不到“ Hello Shell World!”。 在終端上打印。
我相信我的腳本正在執行,因為我沒有收到類似“您好,無法執行,沒有這樣的文件或目錄”之類的錯誤。
我正在Linux機器Ubuntu上執行此操作。 謝謝!
從Java運行外部程序時,輸出不會到達Java應用程序的終端(輸入也不來自Java應用程序的終端)。
到外部程序(您的腳本)的輸入和輸出流(STDIN,STDOUT,STDERR)被定向到(從)當您執行exec(...)
時創建的Java 流程可訪問的InputStreams和OutputStreams exec(...)
您應該使用閱讀器捕獲命令的輸出:
Process p=Runtime.getRuntime().exec(new String[]{"./hello"});
p.waitFor();
BufferedReader reader=new BufferedReader(new InputStreamReader(p.getInputStream()));
String line=reader.readLine();
while(line!=null) {
System.out.println(line);
line=reader.readLine();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.