林試圖發起一個jar文件作爲一個過程,我需要運行的命令是這樣的:參數語法
「的java -Xmx512M -Xms512m罐子myapp.jar ARGS」
這是代碼我現在有工作:
ProcessBuilder builder = new ProcessBuilder();
String[] command = {"java", "-jar", "myapp.jar"};
builder.command(command);
Process process = builder.start();
OutputStream stdin = process.getOutputStream();
InputStream stdout = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(stdout));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(stdin));
ReaderThread rt = new ReaderThread(reader);
Thread handle = new Thread(rt, "ReaderThread");
handle.start();
但是,如果我嘗試添加一些像「-Xmx1024M」如果我嘗試添加我會得到一個「Maximun堆錯誤」或「args」在最後一個字符串,然後我得到「無法訪問jarfile」。
那麼什麼是正確的語法來添加所有的參數,以正確的順序完成系統調用?
非常感謝您的幫助。
編輯:
我也試過路過整個命令,但由於某種原因,沒有工作。
我稍後處理流,但我不能讓它執行我想要的完整命令。 thx – josephfley 2012-04-02 18:10:34
@joseph:請說明你如何處理這些流。 – 2012-04-02 18:12:13
我修改了原來的帖子以包含該部分,我可以發佈完整的代碼,但基本上一個線程讀取輸出,該部分工作,我只是不能將參數傳遞給子進程jar。 – josephfley 2012-04-02 18:19:52