【发布时间】:2016-01-11 15:25:20
【问题描述】:
我尝试在 Java 中执行 shell 命令,但它不起作用。
我可以直接在 Linux(Ubuntu) 上运行这个命令:
/bin/sh -c 'while true ; do java -jar /home/user/workspace/TCPClientNew/WebContent/NewClient.jar 192.168.138.1 6789 ; sleep 1 ; done'
但是当我使用 Java 执行此操作时,它永远不会执行。它总是显示“未找到”。 这是我的代码:
Runtime rt = Runtime.getRuntime();
Process proc;
String[] commands = {"/bin/sh","-c","'while true ; do java -jar /home/user/workspace/TCPClientNew/WebContent/NewClient.jar "+" "+host+" "+port+ " ; sleep 1 ; done'"};
proc = rt.exec(command);
谁能告诉我为什么错了? 非常感谢。
【问题讨论】:
-
尝试使用 ProcessBuilder 类并执行你的命令
-
@MiteshParmar 谢谢,但你能告诉我为什么这是错误的吗?