java等效于perl中的system()命令

时间:2010-11-04 15:20:45

标签: java

我可以使用Runtime来实现相同的目标吗?如果是这样,利弊是什么 我必须从java调用shell脚本。

提前致谢。

4 个答案:

答案 0 :(得分:2)

您可以使用Runtime.exec()从Java执行shell脚本。当然,这将减少跨平台和更难维护。如果要等待shell脚本完成,则需要使用exec()返回的Process对象并调用waitFor()。您还可以获得非常有用的stdin/out/err。您可能还想明确调用正确的shell,例如exec("sh script.sh")

答案 1 :(得分:1)

是的,请使用Runtime.exec()

Runtime.getRuntime().exec("command param param");

我不明白利弊。这有效。如果你需要从java执行shell脚本,你应该使用它。

答案 2 :(得分:1)

Runtime.getRuntime().exec("the_script.sh");

新进程将继承Java进程的环境。

答案 3 :(得分:1)

如果您需要更多地控制流程的创建,ProcessBuilderRuntime.exec(...)的更强大的替代方案。