我想从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