我在java中使用shell命令。当我在netbeans中运行项目时,它运行良好。但是当我通过命令行运行项目的jar文件时,它会发出此错误
java.io.IOException: Cannot run program "sudo rabbitmqctl list_queues": error=2, No such file or directory
你能说出是否有办法从jar文件运行shell命令?
答案 0 :(得分:1)
你有很多选择:
您可以使用RunTime类。 Runtime getRuntime() exec(String command)
查看Runtime了解更多信息。
您可以使用ProcessBuilder。 Process p = new ProcessBuilder("myCommand", "myArg").start();
请查看ProcessBuilder以获取更多信息。
您可以使用jsch API从本地计算机执行Linux / Unix命令到任何远程系统。您可以在java代码中创建shell脚本(如果您运行多个shell命令),然后设置与远程服务器的jsch连接。使用jsch连接,您可以将shell脚本复制到远程服务器并运行整个shell脚本。我发现第3个选项非常有用。