我试图使用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();