我構建了一個運行命令「jps」的Java程序,通過從JPS命令的輸出中提取其ID來查看所有JVM並殺死特定的JVM。它在ubuntu終端上運行時工作正常。但後來我在bash中寫了一個腳本來從其他機器ssh那臺機器並在那裏運行這個程序。Java程序運行但不在bash腳本中
ssh $host "java -cp daemon.jar JVMname;"
現在問題來了。
Exception in thread "main" java.io.IOException: Cannot run program "jps": error=2, No such file or directory at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) at runtime.daemon.halt.main(halt.java:19)
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:135)
at java.lang.ProcessImpl.start(ProcessImpl.java:130)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1021)
如果我自己去機器並運行這個相同的命令,它的工作原理。我不想切換到exec解決方案。
任何想法 感謝
這是一個重複這個問題(交互式shell):http://stackoverflow.com/questions/940533/how-do-i-set-path-such-that-ssh-userhost-command-works – nwinkler 2012-03-08 12:04:34
你可以發佈遠程服務器的內容〜/。 bashrc'文件? – nwinkler 2012-03-09 07:08:44