我正在尝试从 Java 程序运行外部程序,但遇到了麻烦。基本上我想做的是这样的:
Runtime.getRuntime().exec("./extprogram <fileIn >fileOut");
但是我发现这不起作用 - Java 显然需要使用Process
输入和输出流以及其他我没有经验的东西。
我在互联网上查看了许多示例(其中许多来自SO),并且似乎没有一个简单的标准方法来执行此操作,对于那些不完全理解正在发生的事情的人来说,可能会非常令人沮丧。
我在尝试根据其他人的代码示例构建自己的代码时也遇到了麻烦,因为通常大多数其他人 1. 对重定向不感兴趣stdin
和 2. 不一定是重定向stdout
到一个文件,而是System.out
.
那么,任何人都可以向我指出任何好的简单代码模板的方向,用于调用外部程序和重定向stdin
and stdout
?谢谢。
你可以尝试这样的事情:
ProcessBuilder pb = new ProcessBuilder();
pb.redirectInput(new FileInputStream(new File(infile));
pb.redirectOutput(new FileOutputStream(new File(outfile));
pb.command(cmd);
pb.start().waitFor();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)