我有一个 UNIX native 可执行文件,需要像这样输入参数
prog.exe < foo.txt.
foo.txt 有两行: 酒吧 巴兹
我正在使用 java.lang.ProcessBuilder 来执行这个命令。不幸的是,prog.exe 只能使用来自文件的重定向。有什么方法可以在 Java 中模仿这种行为吗?
当然,
ProcessBuilder pb = new ProcessBuilder("prog.exe", "bar", "baz");
不起作用。
谢谢!
最佳答案
ProcessBuilder pb = new ProcessBuilder("prog.exe");
Process p = pb.start();
OutputStream pos = p.getOutputStream();
InputStream fis = new FileInputStream("file.txt");
byte[] buffer = new byte[1024];
int read = 0;
while((read = fis.read(buffer)) != -1) {
pos.write(buffer, 0, read);
}
fis.close();
未经测试,但像这样的东西应该可以工作。
关于java - 进程需要重定向输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2969766/