-1

我正在尝试从代码中对类文件执行 JAD 反编译器:

Process p = Runtime.getRuntime().exec("c:\\1\\jad.exe c:\\1\\EIn.class");
//All paths are correct, "c:\\1\\jad.exe c:\\1\\EIn.class" wotks when I run it in cmd

当我调试时,我没有收到任何错误,调试器移动到下一行......

如果我说:

int res = p.waitFor(); 

它只是挂起。

更新:

BufferedReader in = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String str = null;
while ((str = in.readLine()) != null) { //Stucks here
}
4

3 回答 3

1

反编译器是否在jad等待您通过标准输入的输入?

要查看您遇到的错误,请使用getOutputStreamgetErrorStream查看反编译器正在写出的内容。

您可以使用ProcessBuilder该类使重定向流更加愉快。

于 2012-11-19T13:04:15.847 回答
0
public static void main(String[] args) throws Exception {

    String[] cmd = { "c:\\1\\jad.exe", "-c:\\1\\EIn.class" };
    Process p = Runtime.getRuntime().exec(cmd);
    p.waitFor();
}
于 2012-11-19T13:07:04.027 回答
0

这是 Java 中的 TRAP,请看看这个页面,你会得到比你想要的更多的东西!

于 2012-11-19T13:10:14.033 回答