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

如何在Java中自动回答用户提示?,java,linux,bash,parameter-passing,prompt,Java,Linux,Bash,Parameter Passing,Prompt,我使用的是一个编译过的Java文件,它将文件名作为参数,然后要求输入用户名和密码(通过用户输入)。我试图从shell脚本中自动执行此操作,但遇到了问题。我无法访问java代码,这就是我遇到问题的原因。 因此,代码按以下方式调用 java javaprogram /home/user/securityfile 因此,您传递该文件,然后它要求您输入用户名和密码。输入这些后,就完成了 现在,我尝试将用户输入放入一个文件中并将其传递,但我得到了一个错误 java javaprogram /home/u

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

java javaprogram /home/user/securityfile
因此,您传递该文件,然后它要求您输入用户名和密码。输入这些后,就完成了

现在,我尝试将用户输入放入一个文件中并将其传递,但我得到了一个错误

java javaprogram /home/user/securityfile < userinputfile
有人有什么想法吗?也许我做错了

以下是错误消息:

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

试试看
(echo“用户”;sleep 1;echo“密码”)| java javaprogram/home/user/securityfile


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

这是一个怎样的编程问题?如果您只是想了解Java程序在做什么,也许可以尝试反编译它?或者,由于这听起来像是一个Linux系统,您可以尝试使用
strace
查看它与控制台的交互方式。请注意,在控制台上安全读取密码的任何机制都不会与管道一起工作;您可能需要pty。请尝试
(echo“user”;sleep 1;echo“password”)| java javaprogram/home/user/securityfile
。如果可以的话,你可以重构从文件中读取而不需要做太多的工作。可能是因为应用程序永远不会从
System.in
中读取,因为它需要一个交互式控制台
System.console()
。一些信息。也看看这个。你是正确的,我从一开始就注定了。它使用的是System.console()。谢谢你的帮助。
Exception in thread "main" java.lang.NullPointerException at ilex.util.UserAuthFile.main(UserAuthFile.java:297)