【发布时间】:2013-09-08 17:50:30
【问题描述】:
我有一个 Java 程序,我想在 linux shell 脚本中调用它。 Java 程序从命令行获取用户输入。
我在某处读到我可以使用 echo 来模仿用户输入,如下所示:
java myProgram
echo 1000
echo
但这对我不起作用,程序仍在等待用户输入。有什么我做错了吗?我无法想象这是一项艰巨的任务。
【问题讨论】:
我有一个 Java 程序,我想在 linux shell 脚本中调用它。 Java 程序从命令行获取用户输入。
我在某处读到我可以使用 echo 来模仿用户输入,如下所示:
java myProgram
echo 1000
echo
但这对我不起作用,程序仍在等待用户输入。有什么我做错了吗?我无法想象这是一项艰巨的任务。
【问题讨论】:
您可以使用echo,但在管道中。
echo 1000 | java myProgram
如果要发送文件,可以使用cat:
cat file.txt | java myProgram
【讨论】:
java myProgram <<<1000。
java myProgram "$(the_command)" 或 the_command | xargs java myProgram 的内容。
为什么不直接将值作为参数传入
java myProgram 1000
【讨论】:
我认为你应该找到你的java进程的进程id,然后写入它的/proc目录。
说Java进程的id是4321,然后输出到
/proc/4321/fd/0
【讨论】: