簡體   English   中英

從Java調用簡單的Shell腳本不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM