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



我试图使用Runtime.getRuntime().exec(cmd)来运行jad应用程序来反编译.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);
}

什么都没有输出,谁能说出来?

我怀疑你遇到了错误。我建议你也把它打印出来。

如果使用 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();

最新更新