如何从 Java 代码无缝执行 Unix Shell 脚本
使用 Runtime.getRuntime().exec( 从 Java 执行 Unix 命令是可行的我的命令)。然而,问题出现了:Unix shell 脚本可以从 Java 代码运行吗?
从 Java 运行 Shell 脚本
答案是肯定的。为了实现这一点,请利用 Process Builder,这是一个专门为执行外部流程和管理其环境而设计的类。以下代码演示了该过程:
ProcessBuilder pb = new ProcessBuilder("myshellScript.sh", "myArg1", "myArg2"); Map<String, String> env = pb.environment(); env.put("VAR1", "myValue"); env.remove("OTHERVAR"); env.put("VAR2", env.get("VAR1") + "suffix"); pb.directory(new File("myDir")); Process p = pb.start();
好的做法还是不好?
从 Java 运行 shell 脚本是否被认为是好的做法是有争议的。一些人认为这会带来额外的复杂性和潜在的安全风险。然而,其他人认为 shell 脚本可以提供与现有 Unix 环境的灵活性和互操作性。
最终,决定取决于应用程序的具体要求以及所需的控制和安全级别。如果您优先考虑灵活性和遗留集成,从 Java 运行 shell 脚本可能是一个可行的选择。
以上是Java代码可以无缝执行Unix Shell脚本吗?的详细内容。更多信息请关注PHP中文网其他相关文章!