bash Java程序不接受管道输入
我必须使用一个Java程序,它需要2个用户输入,如下所示:
Enter username:
Enter password:
所以我想把它像
echo -e "myusername\npassword" | java javaprogram
及
java javaprogram < input.txt
两个都没用
当我执行这个命令时,它会显示如下错误:
Enter userID: Enter password: Exception in thread "main" java.io.IOException: Unable to mask input in console. at..
我不知道这个jar文件的源代码
原因是什么
# 1 楼答案
很可能程序不是从标准输入读取密码,而是从终端读取密码。有一个名为
expect
的程序,它基本上是一种用于编写与终端程序交互脚本的语言看看http://expect.sourceforge.net/
# 2 楼答案
看看expect,它有助于与交互式程序进行编程对话。此外,如果你想知道更多关于*的来源。您正在使用的jar文件,可以对其进行反编译