我正在编写脚本来启动 Java 应用程序并安全地为 Java 应用程序提供密码。密码不应回显到屏幕上,并且任何列出正在运行的进程的人都不应该看到。以下脚本适用于此:
echo -n "enter password: "
read -r -s password
java -classpath $CLASSPATH com.myclientscompany.Manage<<EOF
$password
EOF
...使用 Java 程序从标准输入读取密码作为一行。
我面临的问题是,在以这种方式获取密码后,我希望 Java 应用程序通过控制台以交互方式接受用户的进一步输入。目前,在 Java 中从 stdin 读取的每个后续尝试都会立即返回 null
。
有没有办法在这个脚本结束时将标准输入切换回接受控制台输入?
最佳答案
如果你使用的是1.6以上版本,可以使用Console.readPassword()
从您的 Java 程序内部输入密码。
关于java - bash 和 Java 之间的标准输入切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13066176/