【问题标题】:Decompile .class files to .java source code using java libraries使用 java 库将 .class 文件反编译为 .java 源代码
【发布时间】:2014-03-31 22:48:13
【问题描述】:

我正在研究需要将.class文件反编译为源代码的java项目,我发现了很多方法,例如JAD反编译器和'javap -p'方法...,但我认为这些方法是不能以编程方式完成(请告诉是否可以),有没有办法以编程方式完成,如果您向我展示任何库,将不胜感激。

【问题讨论】:

  • @SachinVerma 您提供的链接提供了一点帮助,但我无法回答,
  • 这就是为什么我没有把它放在答案中
  • @SachinVerma 没关系,实际上我是 stackoverflow 的新手,我不知道规则和规定,无论如何谢谢:)

标签: java class decompiler jad


【解决方案1】:

Procyon是用Java编写的Java反编译器,可以直接从Java代码中调用。例如:

final PrintWriter writer = new PrintWriter(System.out);

try {
    com.strobel.decompiler.Decompiler.decompile(
        "W:\\Hello.class",
        new com.strobel.decompiler.PlainTextOutput(writer)
    );
}
finally {
    writer.flush();
}

还有一个接受DecompilerSettings 实例的decompile() 重载,您可以使用它来切换某些功能并为反编译器提供有关如何解决类依赖关系的提示。如有任何问题,请随时通过 BitBucket 与我联系。

【讨论】:

  • 其实我需要在控制台打印.java文件,我必须使用什么方法,你有Proycon的文档吗?
  • 上面的例子会将输出打印到控制台。如果您想打印到其他来源,只需在创建PlainTextOutput 时传递另一种Writer。我目前没有任何文档,但我可以回答您的任何问题。
  • 很抱歉没有测试我自己的答案。问题似乎是作者的缓冲区没有被自动刷新。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-01
  • 2016-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多