Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Windows Powershell运行的Java进程有时会随机停止,直到按Ctr+;C_Java_Powershell_Freeze - Fatal编程技术网

从Windows Powershell运行的Java进程有时会随机停止,直到按Ctr+;C

从Windows Powershell运行的Java进程有时会随机停止,直到按Ctr+;C,java,powershell,freeze,Java,Powershell,Freeze,我正在以管理模式运行一个Java进程,其中包含来自Windows服务器上Powershell的多个线程 有时,它会随机冻结,直到我按下Ctrl+C,然后它才重新开始工作 有没有人遇到过这个问题并告诉我该去哪里查看?如果您使用Runtime.exec(..)启动进程,有时需要从进程中读取字节。getInputStream()resp。Process.getErrorStream(),否则,当进程尝试向std out(或std err)写入超过某个缓冲区大小的数据时,进程会阻塞。 我在启动Shell

我正在以管理模式运行一个Java进程,其中包含来自Windows服务器上Powershell的多个线程

有时,它会随机冻结,直到我按下Ctrl+C,然后它才重新开始工作


有没有人遇到过这个问题并告诉我该去哪里查看?

如果您使用Runtime.exec(..)启动进程,有时需要从进程中读取字节。getInputStream()resp。Process.getErrorStream(),否则,当进程尝试向std out(或std err)写入超过某个缓冲区大小的数据时,进程会阻塞。 我在启动Shell脚本时经常遇到这个问题。 您可以创建一个后台线程来定期读取这些流


或者更简单地说,您可以使用ProcessBuilder类启动shell进程并使用“inheritIO()”方法。

我认为这可能是一个普遍已知的问题,因为我希望shell通过按Ctrl+C而不是从冻结中恢复来终止进程。关于这种行为如何可能的解释足以让我回去寻找问题。谢谢你的回答。但是用
java-jar process.jar
启动进程不是将所有输出都通过管道传输到控制台吗?那么溪流应该总是空的吗?哦,对不起。我的答案是,从Java进程启动Shell。但你却反过来做了。但是,这可能是一个类似的问题,具体取决于Shell的启动方式以及Shell输出的去向。