如何使用 bash 将输入通过管道传送到 Java 程序
我的 Java 程序正在侦听标准输入:
InputStreamReader isReader = new InputStreamReader(System.in);
BufferedReader bufReader = new BufferedReader(isReader);
while(true){
try {
String inputStr = null;
if((inputStr=bufReader.readLine()) != null) {
...
}
else {
System.out.println("inputStr is null");
}
}
catch (Exception e) {
...
}
}
现在,我想从 bash 管道输入到这个程序。我尝试了以下方法:
echo "hi" | java -classpath ../src test.TestProgram
但它只是无限次打印。我做错了什么?inputStr is null
编辑1:更新了问题以包含更多代码/上下文。
编辑 2:
看起来我遇到了与此OP相同的问题:Java中的命令行管道输入
如何修复程序,以便我可以通过管道输入进行测试,但正常运行程序将允许用户在标准输入上输入输入?