是否可以在Java中创建“虚拟”文件并将其作为参数传递给Process/ProcessBuilder?将“虚拟”文件传递给Java中的进程
比方说,我想调用外部.exe文件(Windows)的参数arg
。 arg
必须是硬盘上的文件。考虑下面的代码为例:
Process p = Runtime.getRuntime().exec("someProgram.exe -file " + arg)
所以,是有可能创造arg
“虚拟”的文件,并以这样一种方式把它传递到Java中的外部进程?如果是这样,我该如何执行它? 我宁愿避免将文件写入硬盘,因为HDD I/O速度很慢。
看看[这个问题]的接受答案(http://stackoverflow.com/questions/18903549/writing-to-inputstream-of-a-java-process),以了解你如何可能做这样的事情。这不是您的问题的确切答案,而是两个过程如何使用标准输入和输出进行通信的示例。正如Will Hartung在答案中指出的那样,您的外部程序需要能够通过标准输入接受输入。由于我假设你不能修改外部程序的代码,你可能别无选择,只能写一个文件。 –