Моя программа 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
Как я могу исправить программу, чтобы я мог подключать вход для тестирования, но запуск программы обычно позволяет пользователям вводить ввод также на стандартный ввод?