我正在使用 ProcessBuilder 在服务器上运行 Linux 命令:
ProcessBuilder pb = new ProcessBuilder("/usr/bin/printf %b", sendMessage,
URL, " @serendipity | /usr/bin/perl /usr/local/bin/foo/bar -u nagios -s");
我正在尝试广播一条消息,该消息将通过管道传输到名为 bar 的寻呼系统。但是在服务器上执行 jar 文件时,我经常得到这个:
java.io.IOException: Cannot run program "/usr/bin/printf %b": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at sms_serendipity.sms_serendipity.SmsSendMessage.sendMessage(SmsSendMessage.java:59)
at sms_serendipity.sms_serendipity.SmsSendMessage.randomizeLinks(SmsSendMessage.java:48)
at sms_serendipity.sms_serendipity.SmsParseWeb.regexHttp(SmsParseWeb.java:103)
at sms_serendipity.sms_serendipity.SmsParseWeb.parseXML(SmsParseWeb.java:77)
at sms_serendipity.sms_serendipity.SmsParseWeb.locateWebAudio(SmsParseWeb.java:44)
at sms_serendipity.sms_serendipity.mainClass.main(mainClass.java:11)
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 6 more
这是我第一次使用 ProcessBuilder(我也尝试过使用 Runtime.exec())。有人可以告诉我如何纠正我尝试运行的命令吗?
最佳答案
仔细阅读错误信息:你尝试执行程序/usr/bin/printf %b
,这当然不存在。
程序名为/usr/bin/printf
。
关于java - 无法使用 Java 运行 linux 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44054364/