你知道什麼是真正可怕的,當一個想法的作品第一次......你在想你做錯了什麼......
的基本思想是將執行新的JVM和讀取,輸出處理。爲此,您可以使用ProcessBuilder
並直接執行java
。
這個例子將要求java
在執行路徑工作。此外,罐正試圖運行是在dist
目錄,您可能需要改變這一點;)
執行人
這將啓動Java,執行所需的jar文件和讀取響應。
public class RunJava {
public static void main(String[] args) {
ProcessBuilder pb = new ProcessBuilder("java", "-jar", "dist/RunJava.jar");
pb.redirectErrorStream();
try {
Process p = pb.start();
InputStreamReader isr = new InputStreamReader(p.getInputStream());
p.waitFor();
isr.join();
System.out.println("Process said [" + isr.getText() + "]");
} catch (Exception exp) {
exp.printStackTrace();
}
}
public static class InputStreamReader extends Thread {
private InputStream is;
private String text;
public InputStreamReader(InputStream is) {
this.is = is;
start();
}
public String getText() {
return text;
}
@Override
public void run() {
StringBuilder sb = new StringBuilder(64);
int value = -1;
try {
while ((value = is.read()) != -1) {
sb.append((char)value);
}
} catch (IOException exp) {
exp.printStackTrace();
sb.append(exp.getMessage());
}
text = sb.toString();
}
}
}
主要
這是被執行的「主」類(和它的結果我們閱讀...)
public class Main {
public static void main(String[] args) {
System.out.println("Hello from the other side!");
}
}
這是一個好主意,但我需要它與項目完全分開,因爲外部資源可能會創建一個沒有源代碼的jar,並且需要我編寫的這個程序。 – user2113228 2013-02-26 23:25:16