java - bash 和 Java 之间的标准输入切换

标签 java linux bash stdin

我正在编写脚本来启动 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/

相关文章:

java - 如何实现一个可以被多线程处理的队列?

linux - 使用 sed 替换文件中的变量文字值

linux - 我有一个虚拟转速。 rpm -qpR lin.rpm

python - 在 python 解释器和脚本文件中运行时的不同结果

java - 我可以直接将 .sql 文件导入 XAMPP 安装吗

java - 如何使用 JavaFXPorts 在 Android 中启用 JavaFX 虚拟键盘

linux - 如何通过 SSH/PuTTY (Debian) 将 cronjobs 从 root 分配给另一个用户?

python - 通过 Python 脚本中的 -cat 连接文件

linux - 如何从bash中的变量中获取值

java - jpa中生成的表中的错误排序