我有一个读取文本文件的应用程序。
如果应用程序从stdin读取它,那么我可以转发输入/管道
$ app < input.txt
$ cat input.txt | app
不幸的是,应用程序需要一个文件名作为参数..
$ app --input input.txt
我无法轻易更改输入源(例如,交换本地文件[如示例]以获得wget
的结果。)
有没有选择以某种方式欺骗这个应用程序?
如果解决方案需要临时文件,则该文件不必留在FS上。
该应用程序实际上是一个可执行的JAR;我想要在Win / Lin上运行的技巧..
答案 0 :(得分:3)
我不确定它是否适合你,但我已经用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上不存在。
答案 1 :(得分:0)
你想做这样的事情。
java -jar myjar.jar arg1 arg2
其中myjar.jar是可执行jar,而arg1 arg2等是程序所期望的参数。
因此,假设您要将input.txt
传递给您的应用程序,而only commandline parameter required
则命令将
java -jar myjar.jar input.txt