0
我正在研究一個java程序,因爲它使用單獨的JRE,所以我必須使用進程生成器調用另一個java程序。Process Builder Issue
下面是批處理程序調用該程序,並正常工作:
cd C:\apps\Project_name\bin\
C:\Progra~1\Java\jre1.6.0_03\bin\java -Xms512m -Xmx1024m
-cp ../lib/spring-1.2.2.jar;../lib/log4j-1.2.8.jar;../lib/commons-logging-1.0.4.jar;../lib/wrapper.jar
com.project.main.MainProgramLauncher arg1 arg2
現在,我宣佈我的代碼是這樣的:
ProcessBuilder builder = new ProcessBuilder(
"java",
"-Xms512m",
"-Xmx1024m",
"-cp ../lib/spring-1.2.2.jar;../lib/log4j-1.2.8.jar;"+
"../lib/commons-logging-1.0.4.jar;../lib/wrapper.jar",
"com.project.main.MainProgramLauncher arg1 arg2 ...argN"
);
Map<String, String> environment = builder.environment();
environment.put("path", ";"); // Clearing the path variable;
environment.put("path", java_bin_location+";");
Process javap = builder.start();
InputStreamReader tempReader = new InputStreamReader(
new BufferedInputStream(javap.getInputStream())
);
BufferedReader reader = new BufferedReader(tempReader);
while (true) {
String line = reader.readLine();
if (line == null)
break;
System.out.println(line);
}
但它不執行的事情應該是這樣。程序馬上崩潰。有什麼不同,我應該做的?請建議。
(我在格式化時已經打斷了一些行,這會讓我們更容易看到發生了什麼。) – 2010-01-21 02:38:37