无法使用Runtime.getRuntime().exec(“命令行”)启动java程序;在LinuxMint中

无法使用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

我有一个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/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
,以说明本身包含空格的参数。