【发布时间】:2015-05-19 00:38:04
【问题描述】:
以下命令在我的 Linux 终端中正确运行:
java -Djava.library.path=/home/john/native_so_libraries/linux-64 -cp '/home/john/NetBeansProjects/SendReceive/dist/SendReceive.jar:/home/john/Desktop/Dropbox/Libjitsi_linux_64/*' Main "send"
此命令指定本地 .so 库的文件夹(通过 Djava.library.path=/...)、名为“SendReceive.jar”的应用程序 JAR 文件、JAR 库的文件夹(通过 -cp 类路径选项),还有一个包含要运行的主要方法的主类,一个名为“Main”的类。它有一个用引号括起来的命令行参数,即“send”参数。此命令有效并从终端运行 Java 进程,但我无法弄清楚如何让它与来自另一个进程的 Runtime.getRuntime().exec 一起工作。
请注意,我正在尽最大努力遵循本教程中提供的说明:http://www.javaworld.com/article/2071275/core-java/when-runtime-exec---won-t.html?page=2 - 这意味着我正在使用线程来使用进程中的标准输入和标准错误流。尽管如此,当我将该终端命令变成这样的字符串时,该过程仍不会开始:
Process process = Runtime.getRuntime().exec("java -Djava.library.path=/home/john/native_so_libraries/linux-64 -cp '/home/john/NetBeansProjects/SendReceive/dist/SendReceive.jar:/home/john/Desktop/Dropbox/Libjitsi_linux_64/*' Main \"send\"");
如何让这个命令通过 Runtime.getRuntime().exec 运行?
【问题讨论】:
标签: java linux process runtime.exec