首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Process Builder问题

Process Builder问题
EN

Stack Overflow用户
提问于 2010-01-21 10:21:38
回答 1查看 1.2K关注 0票数 0

我正在开发一个java程序,其中我必须使用process builder调用另一个java程序,因为它使用了一个单独的JRE。

下面是批处理程序,它调用该程序并正常工作:

代码语言:javascript
运行
复制
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

现在我声明我的代码是这样的:

代码语言:javascript
运行
复制
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);
}

但它并没有以它应该执行的方式执行。程序马上就崩溃了。有什么我应该做的不同的事情吗?请提个建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-21 10:34:49

我猜你应该把你的类名和参数改成不同的字符串。而不是:

代码语言:javascript
运行
复制
"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"

它应该是

代码语言:javascript
运行
复制
"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"

另一个值得注意的事情是,当您使用ProcessBuilder时,您使用了完整的路径名来调用java.exe

您可能还想读取错误流(或调用redirectErrorStream(true) -参数很重要(!))。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2106497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档