process.waitFor()没有结束

时间:2017-03-06 09:34:13

标签: java perl

我有一个JAVA代码,我正在执行一个perl脚本。 有些脚本不返回响应代码,但需要密码才能执行。我的代码在这些情况下不返回,process.waitFor()无休止地等待。     我有办法解决这个问题吗?

Process process = pb.start();
            int returnCode = process.waitFor();
            System.out.print("return code>>"+ returnCode );

我的代码的目标是运行命令并显示响应代码。

1 个答案:

答案 0 :(得分:1)

我在这里看到两个选择:

  • 您可以通过OutputStreamProecess::getOutputStream来正确管理流程的标准输入,以便您可以正确发送输入并让流程完成
  • 你可以破坏这个过程(参见Process::destroyProcess::destroyForcibly),但这意味着你必须选择一个最长的等待时间才能这样做(并且可能会产生问题,因为你实际上是在尝试在一些操作中可能会杀死一个进程)