无法使用Runtime.getRuntime().exec(“命令行”)启动java程序;在LinuxMint中
我有一个java应用程序,它将自己启动另一个java程序。我通过使用无法使用Runtime.getRuntime().exec(“命令行”)启动java程序;在LinuxMint中,java,linux,linux-mint,Java,Linux,Linux Mint,我有一个java应用程序,它将自己启动另一个java程序。我通过使用 Runtime.getRuntime().exec("/usr/lib/jvm/java-7-oracle/jre/bin/java -Dfile.encoding=UTF-8 -cp /home/AL/Dropbox/Distributed\ Systems/Project/distributedIM/DS/lib/derbyclient.jar:/home/AT/Dropbox/Distributed\ Systems/P
Runtime.getRuntime().exec("/usr/lib/jvm/java-7-oracle/jre/bin/java -Dfile.encoding=UTF-8 -cp /home/AL/Dropbox/Distributed\ Systems/Project/distributedIM/DS/lib/derbyclient.jar:/home/AT/Dropbox/Distributed\ Systems/Project/distributedIM/DS/lib/gson-2.2.4.jar:/home/AT/Dropbox/Distributed\ Systems/Project/distributedIM/DS/build/classes com.myim.client.main.StartClient");
它在MacOS10.9上运行良好,但当我在LinuxMint上尝试时,什么都没发生。。。。
我真的不明白为什么,有人能帮我吗?
非常感谢。据我所知,
命令行
不是现有的Unix程序。如果您将问题中的实际命令替换为命令行,那么问题很可能是您尝试调用的应用程序在Linux中不存在。请尝试类似的操作
String[] cmd = new String[] {"/bin/bash", "-c", "ps"}
Runtime.getRuntime().exec(cmd);
在Linux中。用您试图在终端中执行的命令替换
ps
。甚至可以在命令中使用管道和过滤器:“ps-fe | grep bash”
实际使用的命令行是什么?您会收到什么错误消息或异常?相关:,尤其是最上面的答案。为什么不直接使用ClassLoader
从Java启动Java应用程序?阅读(并实现)所有的建议。这可能会解决问题。如果没有,它应该提供更多关于失败原因的信息。然后忽略它引用的exec
,并使用ProcessBuilder
构建流程。还可以将字符串arg
分解为字符串[]args
,以说明本身包含空格的参数。