林试图发起一个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