java - 在 Java 中执行 shell 命令行

标签 java linux shell

我尝试在 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);

谁能告诉我为什么错了? 非常感谢。

最佳答案

命令行中的单引号是为了防止运行命令行的 shell 解释第三个参数。 Java 中不需要它们,因为不再有命令行 shell。只需删除单引号即可。

关于java - 在 Java 中执行 shell 命令行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34725118/

相关文章:

android shell命令获取结果

java - Android MediaPlayer 未知错误

调用 map 方法后 Java 7 文件 channel 未正确关闭

linux - perl - 打印 sql 行

shell - csh 启动脚本

shell - 退格后 HBase shell 崩溃

java - Maven 升级了 DROOLS 版本,现在无法再构建

java - 使用 picasso 将图像大小调整为全宽和固定高度

linux - ffmpeg 多个输出仅适用于第一个 rtmp

linux - 设备映射器,使用虚拟设备启动