我有一个Java程序,比方说Test.class。
当我执行java Test时,程序要求输入密码,然后继续。
问题是stdout重定向到日志,并且使用&(我们在UNIX上)启动程序。
我如何与该程序启动的Java Test&stdin和stdout进行交互?
一种可能的解决方案是在前台启动该程序,然后在有条件的情况下从Java在后台运行该程序。
谢谢!
最佳答案
如果程序可以从stdin中读取密码,则可以在Unix脚本提示符下输入密码,然后启动Java应用程序并将密码传递给它,例如:
echo $PASSWORD | java Test >log.out &
或者,您可以考虑将Java应用程序分为两部分;可能会有一个交互式的“前端”部分来验证密码,然后,一旦验证了密码,就可以启动“后端”部分作为后台进程并退出。
关于unix - Java程序标准输出和从前台分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3905374/