我有一个读取文本文件的应用程序。
如果应用程序从标准输入读取它,那么我可以转发输入/通过管道传输它
$ app < input.txt
$ cat input.txt | app
不幸的是,应用程序需要一个文件名作为参数..
$ app --input input.txt
而且我无法轻松更改输入源(例如,将本地文件[如示例]交换为 wget
的结果)。
有没有办法以某种方式欺骗这个应用程序?
如果解决方案需要临时文件,则该文件必须不保留在 FS 上..
应用程序实际上是一个可执行的 JAR;我希望这个技巧可以在 Win/Lin 上运行..
最佳答案
我不确定它是否适合你,但我已经用 fifo 解决了类似的问题。 http://linux.die.net/man/3/mkfifo
这可以为您提供应用程序和源之间的间接连接。
mkfifo fifo.input
app --input fifo.input
现在您可以用不同的源填充管道。
cat input > fifo.input
ctrl-c
cat otherInput > fifo.unput
希望它能解决您在 Linux 上的问题。到目前为止我知道它在 Windows 上不存在。
关于java - 将输入传递给不从 stdin 读取的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16152438/