我想從Java程序運行linux腳本,並且只在腳本停止時繼續執行程序。我不感興趣閱讀腳本輸出...任何人都可以幫助我嗎? 非常感謝, 和原諒我的英語不好如何從Java運行linux腳本
回答
假設所有其他線程處於空閒狀態:
// run the script.
Process proc = Runtime.getRuntime().exec("/path/to/myscript");
// wait for the return code.
int ecode = proc.waitFor();
如果你有更復雜的參數給你的腳本,或者需要監視STDOUT,STDERR,或需要其他修改(例如將數據提供給STDIN,或更改執行目錄,環境變量等),那麼您應該執行相同的有效過程,但不應使用Runtime.exec(...)
,而應該手動構建並啓動過程。請閱讀Process javadoc和ProcessBuilder javadoc關於如何設置並啓動它。
這隻會工作如果腳本沒有(或很少)輸出。否則它會阻塞並等待某些內容讀取該輸出。 –
OP的q似乎是一個非常簡單的...我假設,我承認,所以我已經編輯過,添加引用來尋找更復雜情況的更多信息。 – rolfl
對不起形成的問題,我真正的問題是,我可以執行我的腳本之前,我必須去特定的目錄。如果我的腳本路徑是/ quota_users/home/Hier_CarryReverse/syn/runme首先我必須執行cd/quota_users/home/Hier_CarryReverse/syn /然後./runme。我沒有成功使用rolfl示例我有一個錯誤,說不能運行程序「cd/quota_users/home/Hier_CarryReverse/syn」:java.io.IOException:error = 2,沒有這樣的文件或目錄 – s0ld13r
您也可以啓動bash的解釋,而不是
Process proc = Runtime.getRuntime().exec("/bin/bash /path/to/myscript");
int ecode = proc.waitFor();
這可能在一些通常破情況下工作時@rolfl解決方案可能無法正常工作(非可執行的腳本文件,#!/頭丟失等)
- 1. 運行Linux腳本從Java
- 2. 如何從java運行python腳本?
- 3. 如何從Java運行bash腳本
- 4. 如何從java運行phantomjs腳本?
- 5. 如何從命令行將Java腳本運行Groovy腳本?
- 6. 從java運行bash腳本
- 7. 從PHP腳本運行java
- 8. 從Java運行腳本
- 9. 從java運行.sh腳本
- 10. 從Java運行shell腳本
- 11. 從Java運行R腳本
- 12. 從Apple腳本運行Java
- 13. 從Java運行shell腳本
- 14. 如何從linux shell中逐行運行R腳本?
- 15. JAVA執行從Linux的powershell腳本
- 16. 如何從Java運行Linux「cd」命令?
- 17. 如何從JAVA運行linux命令?
- 18. 執行Linux腳本的Java
- 19. 如何從cron運行的Perl腳本中運行shell腳本?
- 20. 從linux shell腳本運行linux可執行文件
- 21. 如何從Windows服務在Linux上運行腳本?
- 22. 如何從perl腳本運行「source」命令(Linux)?
- 23. 如何從安裝在linux上的Jenkins運行QTP腳本?
- 24. 如何從Linux中的TestTrack Test Case Manager運行測試腳本?
- 25. 如果我殺死運行java的腳本運行腳本?
- 26. 如何在java中運行sql腳本
- 27. 如何在java中運行groovy腳本?
- 28. 如何從命令行運行腳本?
- 29. Php:從Windows運行ssh登錄到Linux並運行腳本
- 30. 如何使用ProcessBuilder從java運行並行python腳本
那麼你有什麼嘗試?你卡在哪裏? –
你需要一個過程。 請參閱[如何使用Java執行系統命令(linux/bsd)](http://stackoverflow.com/a/792049/416300) – summerbulb
請參閱http://stackoverflow.com/questions/18545921/run-linux -script-from-java/18546394#18546394 – A4L