我有一個bash shell腳本,它執行一堆命令並使用>
將命令輸出重定向到日誌文件。如果我使用Runtime.getRuntime().exec("sh shellscript.sh");
從Java調用shell腳本,shell腳本會被執行,但日誌文件不會被寫入!爲什麼?我如何使它工作?用Java重定向調用bash腳本
編輯: 好吧,所以我想要做的是有點不同。你的代碼工作正常。但是現在在Java程序中重定向不起作用。在下面的示例程序中,日誌文件未寫入!
$ cat script.sh
#!/bin/sh
echo "Hello there"
echo "Hello there 2"
$ cat RunScript.java
public class RunScript {
public static void main(String[] argv) throws Exception {
int i = Runtime.getRuntime().exec("sh /home/gpx/script.sh >> log").waitFor();
System.out.println("Exit code : " + i);
}
}
他們是相對的。我們只是寫一些像`cat file.txt >> log.txt`。我們已經檢查過了! – GPX 2010-12-03 08:54:35
好吧,如果它們是相對的,那麼它們將被寫入一個相對於您運行的java進程的工作目錄的位置。所以你應該檢查相對於java進程的工作目錄的日誌文件。我不會建議,儘管 - 日誌文件應寫入絕對位置,必須是可配置的。 – madhurtanwani 2010-12-03 14:18:19