我正在尝试复制Python中用Java编写的以下脚本,但我没有在Python中看到等效的Redirect.INHERIT。移植它的正确方法是什么?
import java.lang.ProcessBuilder;
import java.lang.ProcessBuilder.Redirect;
public class TestProcessBuilder {
public static void main(String args[]) {
try {
ProcessBuilder builder = new ProcessBuilder("fairymax");
builder.redirectInput(Redirect.INHERIT);
builder.redirectOutput(Redirect.INHERIT);
builder.redirectError(Redirect.INHERIT);
Process subProcess = builder.start();
subProcess.waitFor();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:1)
Redirect.INHERIT
是Python中的默认值。在Python中模拟Java代码:
#!/usr/bin/env python
import subprocess
rc = subprocess.call("fairymax")
答案 1 :(得分:0)
子进程的Popen.communicate()方法与提交的代码块完全相同。
import subprocess
p = subprocess.Popen("fairymax").communicate()
我测试了这个,它适用于Python,但不适用于Jython。