我有興趣,如果任何人有如何運行,不使用運行或的ProcessBuilder在Java應用程序替代運行時和的ProcessBuilder(JAVA)
回答
那麼你可以使用DefaultExecutor從Apache Commons Exec庫執行命令的UNIX命令的想法,但它在內部使用java.lang.Runtime
和java.lang.Process
。
我建議你在Runtime上使用這個庫,因爲Apache Command Execution API更復雜,並且提供比Java運行時更多的功能。它也處理退出值。
它是否處理懸掛問題詳見本評論 - http://stackoverflow.com/a/5483880/537503? – 2014-07-10 04:18:28
有不少可能的方法;但是如果不理解你的動機,我不能稱他們任何一個都合意。
例如,用C或Perl或其他語言編寫程序,並讓它在套接字上偵聽。然後你的java程序可以連接到套接字併發送帶有程序名稱的消息以產生,參數等。接收器程序可以繼續併產生這個。
正確,所以這個想法是創建Java服務器應用程序,它響應像ls,pwd,cd等基本命令。 – tosi 2012-08-16 13:31:20
有兩種方法來執行Unix命令:
- 您可以使用
java.lang.Runtime
和java.lang.Process
- 您可以使用JNI/JNA訪問共享庫。所以你可以用它來訪問操作系統級命令來創建一個進程(在Unix上的
system()
和exec*()
)。
不推薦第二種方法:這是很難得到正確,最終,你將最終的東西恰好具有相同的功能Runtime.exec()
如果你只需要功能,然後你可以用Java再次實現這些命令。例如,要實施ls
,請使用File.listFiles()
- 1. processbuilder來運行來自Java的命令
- 2. 使用Java的ProcessBuilder運行SoX
- 3. 使用ProcessBuilder以Java運行Perl腳本
- 4. Java ProcessBuilder無法運行簡單腳本
- 5. 使用ProcessBuilder運行.java文件
- 6. Java processbuilder在後臺運行程序(.exe)
- 7. 從java ProcessBuilder運行ffprobe失敗
- 8. 無法運行ProcessBuilder
- 9. 運行使用的ProcessBuilder
- 10. CCNx Java代碼幫助(ProcessBuilder)
- 11. 在processbuilder中處理運行時輸入
- 12. 從Java ProcessBuilder運行OpenMPI進程時ompi_evesel-> dispatch()失敗
- 13. 運行在運行時的ProcessBuilder,只得到BufferStreamReader
- 14. Java ProcessBuilder
- 15. 使用ProcessBuilder運行msys.bat
- 16. 通過processbuilder運行腳本
- 17. Java中的ProcessBuilder
- 18. 從processbuilder執行curl與java
- 19. 運行可執行在罐子的ProcessBuilder
- 20. 需要關於在Solaris下運行Java的ProcessBuilder的幫助
- 21. 如何使用ProcessBuilder從java運行並行python腳本
- 22. 的Java的ProcessBuilder管
- 23. 運行ImageMagick的轉換用的ProcessBuilder
- 24. Java中的processbuilder運行一系列命令
- 25. 在特定目錄中運行的Java ProcessBuilder
- 26. 運行時的Java註釋和代碼執行
- 27. ProcessBuilder的問題(java)
- 28. Java ProcessBuilder問題
- 29. Java ProcessBuilder內存
- 30. java processbuilder x264.exe
您能否解釋原因? – AlexR 2012-08-16 13:10:08
任務要求 – tosi 2012-08-16 13:22:23