[英]sshpass in Java gives error: /bin/sh: sshpass: command not found
我試圖在Java中執行一個簡單的sshpass命令:
String command = "sshpass -p password ssh user@host 'echo test' ";
ProcessBuilder pb = new ProcessBuilder("/bin/sh", "-c", command);
pb.inheritIO();
Process process = pb.start();
process.waitFor();
但是命令的執行無法在控制台上顯示以下錯誤:
/bin/sh: sshpass: command not found
如果我在Mac OS的終端機中執行命令,該命令將完美運行。 (已通過brew安裝sshpass)。
如何在Java中也執行命令?
感謝@ThorbjørnRavn Andersen,這是正確的命令(對於Mac):
String command = "/usr/local/bin/sshpass -p password ssh user@host 'echo test' ";
您可以找到執行以下命令的正確路徑:
$ which sshpass
這實際上是Unix,而不是Java。 這里有兩件事:
sshpass
的絕對路徑,您可以依靠shell在$PATH
找到它 /usr/local/bin
到$PATH
中,則不會將其添加到適當的配置文件中。 Shell手冊頁中提供了完整的詳細信息。 通過給出絕對路徑,您可以繞過查找機制!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.