-3

我需要使用带有争论的 java 在中心位置调用 perl 脚本..我使用了以下代码,但它什么也没做..有人可以告诉我缺少什么

            final List<String> commands = new ArrayList<String>();                

            commands.add("perl");
            commands.add("I:/golden_scripts/make-tp-patch.pl");
            commands.add(destpath+"/"+"scrfile.txt.org");
            commands.add(pro_name);
            commands.add(patch);
            ProcessBuilder pb = new ProcessBuilder(commands);
            Process p1 = pb.start();
4

1 回答 1

1

假设您的命令是正确的(而不是帖子中带有额外 " 的错字)并且您的环境设置正确,您可能希望阻止直到 perl 脚本完成。

Process p1 = pb.start();

刚启动程序。您无需等待它完成。您可能想要调用p1.waitFor()which 将等待程序完成并返回退出代码。

然后当 waitFor() 返回时,您就知道程序已完成或已出错。使用 getInputStream() 和 getErrorStream() 中的 inputStreams 来获取 perl 脚本在运行时打印的 STDOUT 和 STDERR 消息可能也是一个好主意。

于 2013-11-08T19:16:21.327 回答