当前位置: 首页 > 面试题库 >

如何“反编译” Java类文件?

贲骏喆
2023-03-14
问题内容

我可以使用什么程序反编译类文件?我实际上会得到Java代码,还是仅仅是JVM汇编代码?

关于此站点上的Java性能问题,我经常看到“反编译” Java类文件以了解编译器如何优化某些东西的人们的回答。


问题答案:

有一些反编译器…快速搜索结果:

  1. Procyon: open-source (Apache 2) and actively developed
  2. Krakatau: open-source (GPLv3) and actively developed
  3. CFR: open-source (MIT) and actively developed
  4. JAD
  5. DJ Java Decompiler
  6. Mocha

这些产生Java代码。Java附带了一些让你看到JVM字节码(javap)的东西。



 类似资料:
  • IDEA有一个很棒的内置功能-反编译器。它工作得很好。我可以复制源代码,但我找不到将所有反编译的java类提取到java文件的选项 这个项目有很多java类和包,所以我很想手动复制它 有人知道如何提取到java源文件吗。谢谢

  • 问题内容: IDEA具有强大的内置功能-反编译器。它可以很好地工作。我可以复制源代码,但是找不到将所有反编译的Java类提取到Java文件的选项。 这个项目有很多Java类和程序包,所以我将很长时间手动复制它。 有谁知道如何提取到Java源文件。谢谢 问题答案: 要从命令行对jar包使用IntelliJ Java反编译器,请遵循此处提供的说明:https : //github.com/JetBra

  • 问题内容: 您可以推荐用于Eclipse的Java反编译器吗?我的其他问题是,使用来自其他Java程序的反编译代码有什么限制?非法还是什么?我对许可证知之甚少。谢谢阅读。 问题答案: 我建议在Google上弹出一个JD Java反编译器。它真的很好。 至于限制,您必须阅读特定软件的许可,否则可能会写明禁止任何反编译方式。

  • 问题内容: 我有以下由Eclipse生成的代码(.java文件)。 现在,我想从命令行编译以上文件。我转到了源代码所在的目录,并尝试了两个命令: 1. javac HelloWorldSWT.java 2. javac -d / home / myname / workspace / HelloWorldSWT.java 在这两种情况下,我都有相同的错误“无法解析导入org.eclipse”。/

  • 问题内容: 我已经搜索过了,但是找不到或无法理解。 现在我不是Java程序员,但是我需要将一个Java文件编译成一个现有的(已编译的)Java程序。该Java代码的源代码对我 不可 用,因此我无法编译整个项目。 我对反编译原始项目不感兴趣。 如何仅使用JDK和javac快速完成此操作?(通过命令行是我的首选。) 我知道这样做必须禁用单个java文件外部的错误检查,因为它无法读取依赖项。 在此先感谢

  • 我正在反编译一个谷歌chrome扩展,因为它看起来很可疑。扩展是用javascript编写的,但有人能告诉我像这样的符号到底是什么,以及如何将它们“翻译”回正常的字符串吗? “\x63\x68\x61\x72\x43\x6F\x64\x65” 完整文件的Jsbin:http://Jsbin.com/onevira/1/