java - 以非交互方式将多行标准输入传递给交互式 Java 命令行程序

标签 java linux testing unix

我有一个命令行 java 程序,它接受密码并从 stdin 进行验证。不幸的是,修改程序不是一种选择,因为它是专有的。

我无法使用 < 从 unix 命令行传递参数因为程序中有两个提示,都要求输入相同的密码。在命令提示符下有标准输出语句要求输入“密码”和“密码(验证):”。

我如何以非交互方式将密码传递给该程序,以便它可以使用 cron 作业/RC 脚本自动执行?

谢谢!

最佳答案

有可能密码根本不是从 stdin 读取的,而是从/dev/tty 读取的。在那种情况下,你就不走运了。

你能通过标准输入输入包括密码在内的所有输入来运行程序吗?如果没有,那你就不走运了。

但是,如果这可行,您可以执行类似的操作

(echo user; echo passwd1; echo passwd1; cat) | java -jar yourCommandlineprogram.jar 

关于java - 以非交互方式将多行标准输入传递给交互式 Java 命令行程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5637349/

相关文章:

testing - 如何使用 mocha 运行不同文件夹中的所有测试文件?

java - 生成的 GraphQL 类实现查询接口(interface)而不是订阅接口(interface)

java - 有没有办法在没有证书的情况下进行 JNLP?

linux - 如何回显包含双引号的文本

c++ - 如何无错误退出 X11 程序

php - Codeception 单元测试 php.检查是否已使用特定参数调用函数

react-native - 我如何 Jest 对 componentWillReceiveProps(nextProps) 进行单元测试?

java - 在哪里可以找到 JRE 的 native 库?

java - 多线程应用程序中的EntityManager?

linux - 我可以有一个依赖于目录的 RPM 吗?