我有一个 JAVA 代码,正在其中执行 perl 脚本。 有些脚本不返回响应代码,但需要密码才能执行。在这些情况下,我的代码不会返回,并且 process.waitFor() 会无休止地等待。 有什么办法可以解决这个问题吗?
Process process = pb.start();
int returnCode = process.waitFor();
System.out.print("return code>>"+ returnCode );
我的代码的目标是运行命令并显示响应代码。
最佳答案
我在这里看到两个选择:
- 您可以通过
Proecess::getOutputStream
获取其OutputStream
来正确管理进程的标准输入,以便您可以正确发送输入并让进程完成 - 您可以销毁进程(请参阅
Process::destroy
或Process::destroyForcibly
),但这意味着您必须在执行此操作之前选择最大等待时间(并且可能会产生问题,因为您实际上可能试图终止进程在某些操作过程中)
关于java - process.waitFor() 没有结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42622017/