我正在尝试从代码:
对类文件执行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
}
答案 0 :(得分:1)
jad
反编译器是否等待你通过stdin输入?
要查看您获得的错误,请使用getOutputStream
和getErrorStream
来查看反编译器正在写出的内容。
您可以使用ProcessBuilder
类使重定向流更加愉快。
答案 1 :(得分: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();
}
答案 2 :(得分:0)
这是Java中的TRAP,请看一下this page,你会得到比你更多的东西!