java - 将输入传递给不从 stdin 读取的应用程序

标签 java linux windows command-line-interface

我有一个读取文本文件的应用程序。

如果应用程序从标准输入读取它,那么我可以转发输入/通过管道传输它

$ 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/

相关文章:

java - OpenCV - 如何在 Android 中设置全屏相机 View ?

java - 如果我需要评估多个案例,我可以在 Java 中使用 switch case 代替 IF

linux - 如何重做shell脚本中的最后一个命令?

linux - shell 脚本 : Generate Report Version

java - 从java从windows ssh服务器获取文件

c++ - _chkstk() 函数的目的是什么?

java - java中使用关键字输出句子

c - argc、argv、envp的内存布局

c# - 将元素添加到 ListView 时如何设置动画/过渡?

java - 使用 application.properties 中的旧值