gpt4 book ai didi

java - 当进程在后台运行时,使用 java.io.InputStreamReader 从标准输入读取会挂起

转载 作者:行者123 更新时间:2023-12-01 04:27:33 30 4
gpt4 key购买 nike

我正在编写一个具有多个线程的 Java 程序。其中一个线程负责从标准输入读取行并解析它们。

正常运行时一切正常,但是当程序在后台(在 Linux 中)运行时使用:

$ java -jar my_jar_file &

我的程序挂起(至少在进入前台之前)。

在后台运行时,我实际上并不需要标准输入,但我也不希望我的程序挂起。

我搜索了一种以编程方式确定进程是否在后台运行的方法,但找不到它。

这是从标准输入读取的代码:

InputStreamReader inputStreamReader = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(inputStreamReader);

String line = null;

try {
while ((line = br.readLine()) != null) {
parseInputLine(line, br);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

据我所知,程序在到达 br.readLine() 命令时挂起。

最佳答案

我猜读者正在阻塞等待输入,您也许可以从命令行通过管道输入输入

关于java - 当进程在后台运行时,使用 java.io.InputStreamReader 从标准输入读取会挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18384233/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com