Java 程序不接受管道输入

标签 java bash shell unix

我必须使用一个 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文件的源代码。

这可能是什么原因?

最佳答案

程序很可能不是从标准输入读取密码,而是从终端读取密码。有一个名为 expect 的程序,它基本上是一种用于与终端程序交互的脚本语言。

看看http://expect.sourceforge.net/

关于Java 程序不接受管道输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49692730/

相关文章:

java - 如何在 Ubuntu 上安装 openjdk-6-jre

java - 解码Spring安全BCryptPasswordEncoder

linux - 如何将目录中的内容复制到 shell 中的当前目录?

linux - 如何删除//当前文件夹和子文件夹中所有文件的注释行?

bash - SAR 命令输入多个文件

bash - 在 bash 脚本中读取函数中的标准输入

c - linux 查找调用的命令

java - Play! 的异步程度如何?框架

java - 将 QRCode 转换为图像。 java

bash - 如何在 shell 脚本中使用 unset 和 xargs?