如何自动回答Java中的用户提示?

How to automatically answer user prompts in Java?

我正在使用编译后的 Java 文件,该文件将文件名作为参数,然后要求输入用户名和密码(通过用户输入)。我正在尝试通过 shell 脚本自动执行此操作,但 运行 遇到了问题。我无法访问 java 代码,这就是我遇到问题的原因。
所以代码调用方式如下

java javaprogram /home/user/securityfile

因此,您传递了文件,然后它要求您提供用户名和密码。输入这些后,就完成了。

现在,我尝试将用户输入放入一个文件中并传入,但出现错误。

java javaprogram /home/user/securityfile < userinputfile

用户输入文件包含以下文本(第一行是用户名,第二行是密码):

MattSmith
MSpassword136

有人有什么想法吗?也许我做错了?

错误信息如下:

Exception in thread "main" java.lang.NullPointerException at ilex.util.UserAuthFile.main(UserAuthFile.java:297) 

谢谢

试试看 (echo "user"; sleep 1; echo "password") | java javaprogram /home/user/securityfile

如果可行,您可以重构为从文件中读取而无需太多工作。如果没有,可能是该应用程序永远不会从 System.in 中读取,因为它需要一个交互式控制台 System.console()。一些信息 here.