我是在Windows XP上的Eclipse中工作的新手程序員,我需要運行多個進程(這將成爲多計算機系統的模擬)。我最初的hackup將多個線程用於多個類,但現在我試圖用進程替換線程。使用ProcessBuilder運行.java文件
從我的閱讀中,我已經瞭解到ProcessBuilder是要走的路。我已經嘗試了很多很多版本的輸入,你看下面,但不能爲我的生活弄清楚如何正確使用它。我試圖運行我以前創建的.java文件作爲類(我已修改)。我最終做了一個虛擬test.java來確保我的進程正常工作 - 它唯一的功能是打印它的運行。
我的兩個文件的代碼如下。我正確使用ProcessBuilder嗎?這是讀取我的子進程輸出的正確方法嗎?任何幫助將非常感激。
- 大衛
編輯:解決的辦法是聲明的ProcessBuilder( 「java.exe的」, 「 - CP」, 「賓」, 「Broker.test」);
主要過程
package Control;
import java.io.*;
import java.lang.*;
public class runSPARmatch {
/**
* @param args
*/
public static void main(String args[]) {
try {
ProcessBuilder broker = new ProcessBuilder("javac.exe","test.java","src\\Broker\\");
Process runBroker = broker.start();
Reader reader = new InputStreamReader(runBroker.getInputStream());
int ch;
while((ch = reader.read())!= -1)
System.out.println((char)ch);
reader.close();
runBroker.waitFor();
System.out.println("Program complete");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
子
package Broker;
public class test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("This works");
}
}
結束工作的確切語法是ProcessBuilder(「java.exe」,「 - cp 」, 「賓」, 「Broker.test」)。謝謝! – 2012-04-10 18:59:49
如果我的Broker.test依賴於另一個jar,那麼我如何將這個jar添加到ProcessBuilder中? – 2013-08-21 10:17:47
我明白了。使用ProcessBuilder(「java.exe」,「 - cp」,「bin:example.jar」,「Broker.test」) – 2013-08-21 10:24:20