我正在尝试在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文件。谢谢!
答案 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)
一些聊天对话后进行了一些更新:主要想法正在起作用,但是类路径需要一些调查。