2

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

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

$ app < input.txt
$ cat input.txt | app

不幸的是,应用程序需要一个文件名作为参数。

$ app --input input.txt

而且我不能轻易更改输入源(例如,将本地文件 [如示例] 交换为 a 的结果wget)。

有没有办法以某种方式欺骗这个应用程序?

如果解决方案需要临时文件,则必须不将该文件留在 FS 上。

该应用程序实际上是一个可执行的 JAR;我想要在 Win/Lin 上运行的技巧..

4

2 回答 2

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 上不存在。

于 2013-04-22T18:00:18.237 回答
0

你想做这样的事情。

 java -jar myjar.jar arg1 arg2

其中 myjar.jar 是可执行的 jar,而 arg1 arg2 等是程序期望的参数。

所以假设你想传递input.txt给你的应用程序,only commandline parameter required然后它的命令将是

java -jar myjar.jar input.txt
于 2013-04-22T16:59:08.080 回答