java - process.waitFor() 没有结束

标签 java perl

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

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

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

最佳答案

我在这里看到两个选择:

  • 您可以通过 Proecess::getOutputStream 获取其 OutputStream 来正确管理进程的标准输入,以便您可以正确发送输入并让进程完成
  • 您可以销毁进程(请参阅 Process::destroyProcess::destroyForcibly ),但这意味着您必须在执行此操作之前选择最大等待时间(并且可能会产生问题,因为您实际上可能试图终止进程在某些操作过程中)

关于java - process.waitFor() 没有结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42622017/

相关文章:

java - 如何在字符串中插入特殊字符?

java - 类不是抽象的,不会重写 KeyListener 中的抽象方法 keyReleased(KeyEvent)

java - 当从 Start 方法调用 System.Exit 时,JavaFX8 中出现奇怪的异常

javascript - 关于将 Continuity 用作 Perl 的 GUI

perl - 在perl中将12小时时间格式转换为24小时格式?

使用信号量和监视器的 Java Unisex 浴室

Java 桌面 API,启动 .cmd 文件

arrays - 文件句柄内的 while 循环后数组被刷新

python - python中字典列表的字典

java - 以交互方式从 java 代码调用 perl 脚本