调用“Runtime.getRuntime()。exec(cmd);”时为什么没有输出在Linux?

时间:2012-07-03 08:24:35

标签: java process runtime.exec

我尝试使用Runtime.getRuntime().exec(cmd)来运行jad app来反编译.class文件。 cmd = "../bin/jad Test.class"但我无法通过这种方式获得输出:

Process p = Runtime.getRuntime().exec(jadCmd2);
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
        System.out.println(line);
}
什么都没有输出,谁能说出来?

1 个答案:

答案 0 :(得分:4)

我怀疑你收到了错误。我建议你也打印一下。

如果您使用ProcessBuilder,您可以组合输出和错误,这样您只能读取一个流。

来自http://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html

 ProcessBuilder pb =
   new ProcessBuilder("myCommand", "myArg1", "myArg2");
 pb.redirectErrorStream(true);
 Process p = pb.start();