2011-05-27 79 views
1

運行命令提示符目前,我有以下批處理腳本我想從我的Java程序運行:從Java程序在Windows

「C:\ PROGRAM 文件\的Java \ jdk1.6.0_25 \斌\ java.exe的 「 -classpath 」d:......「 主> 」 ... \ result.out」

現在,我做了一個簡單的

Runtime.getRuntime().exec(command); 

其中command是我在上面顯示的字符串。問題在於它只是用顯示的參數調用java.exe,而不是用給定的參數調用控制檯。差別很微妙,因爲如果它直接調用java.exe它將忽略輸出流的重定向!

有沒有簡單的方法來做到這一點?我已經試過用「cmd」前綴command,但這似乎沒有幫助。

我想遠離讀取輸出流,然後不得不手動將其保存到文件。

感謝

+0

您可以使用ProcessBuilder來實現此任務。或者,而不是在單行中寫入整個命令來分解它並執行它。 – Ankit 2011-05-27 10:15:22

回答

2

爲了解決這個問題,

cmd /c "command" 

就足夠了。

0
Process proc = Runtime.getRuntime().exec("acpi -b");        

現在,您可以像使用任何常規輸入和輸出流一樣使用proc.getInputStream()和proc.getOutputStream()。

然後,您可以將內容寫入輸出文件。

這是我主要使用的方法。

+0

OP明確指出我不想使用Java的輸入/輸出流。 – 2011-05-31 18:28:55