执行Java时进程未运行

时间:2018-09-22 17:09:54

标签: java process command exec

我正在尝试在Java中运行.class文件。这是我尝试过的:

Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("cd target/classes/; java -cp ./ SoundHandler Correct; cd ../../");

我做了一些谷歌搜索,我能想到的最好的方法是将其坚持到底:

pr.getInputStream();
pr.getErrorStream();
pr.getOutputStream();

这没有帮助。我想在Java中运行.class文件。谢谢!

1 个答案:

答案 0 :(得分:0)

您向运行时发出了三个命令来执行-但只有一个参数。它试图将其作为一个命令执行-但是这样的命令不存在。

如果命令由多个元素(命令和参数)组成,则应将它们作为String数组传递,以便运行时可以区分它们。如果使用的是shell命令(如cd),则应将命令作为参数传递给shell。

尝试这样的事情:

--exit

要调试该过程,可以按以下方式读取命令的输出:

//if you are using unix-like OS. For Windows change sh -c to cmd /k
String[] cmd = new String[] {"sh", "-c", "cd target/classes/ && java -cp ./ SoundHandler Correct"};
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(cmd)

一些聊天对话后进行了一些更新:主要想法正在起作用,但是类路径需要一些调查。