快速指南:适合 Java 开发人员离线使用的最佳 Java 反编译器和最佳在线 Java 反编译器。
1. 概述
在本教程中,我们将了解哪些是最适合 java 开发人员使用的 java 反编译器,哪些是可免费使用的 java 反编译器。
在线反编译器、反编译器。对于一些无法将其下载到开发机器上的开发人员来说,他们可能需要在线反编译器的帮助。
2. 什么是反编译器?
当 JAVA 类被编译后,JVM 会生成该类的 .class 文件。这意味着 java 源代码被转换成字节流形式的 .class 文件。
现在生成的类文件不是可读格式。那么,如何读取 java 中的类文件呢?
Java 反编译器可将字节流数据转换为可读源文件。
很多时候,您可能需要查看第三方 jars 源代码来调试问题。
如果您没有合适的反编译工具,那么您可以
通过使用反编译器,您可以查看字符串、数组列表、哈希集合和哈希Map类的 java 内置应用程序接口类的源代码。
所有 java API 类都存在于 rt.jar 文件中。只要在机器上安装了 java,JDK 就会生成该文件。
每个 java 开发人员都必须有一个 java 反编译器,以便通过查看 .class 文件的内部代码成为更好的程序员。
3. Java 反编译工具
如果您只使用 eclipse,那么您只需要
但如果你是 IntelliJ idea 用户,默认情况下,它自带的反编译器可以完美地工作。
让我们看看离线 Java 反编译工具,选择最适合你的一款。
3.1 JDProject Java 反编译器
JDProject 它可在 windows、unix 和 mac os 上运行。JDProject 是全球 java 开发人员使用最多的 java 反编译器,因为它支持 Eclipse IDE 和离线工具。
它易于使用,支持 java 1.1 及以后的版本。此外,JD 还具有语法高亮功能,还能从离线工具中同时打开多个 jar。它可以轻松地从任何版本的 java .class 文件中重建 java 源文件。它还能与枚举、集合和 java 8 stream apis 协同工作。
3.2 Procyon
Procyon 是一款由 Mike Strobel 开发的 java 反编译器。Procyon 反编译器可处理 JDK 1.5 及更高版本的 Java 语言增强功能,而大多数其他反编译器都无法做到这一点。Procyon 可以很好地处理枚举声明、注解、Java 8 lambdas 和方法引用。
相比之下,我建议使用 JDProject Java 反编译器,因为 Procyon 还是一个新项目,仍在开发中。
3.3 Neshkov – DJ Java 编译器
这也是另一款免费的反编译工具。DJ 反编译器基于 Windows,支持所有 Windows 操作系统,直到 Windows 10。与上述的反编译器一样,这是一款独立工具。
该工具的主要优点是,无需在机器上安装 JDK 即可运行。该程序可让用户保存、打印、编辑和编译生成的 java 代码。您还可以使用下面的给定选项即时编辑和运行代码。
3.4 Cavaj Java 编译器
这是另一款免费的 Java 反编译器。Cavaj Java 反编译器是一个简单的图形用户界面,只适用于 Windows 开发人员,不提供 java
语法高亮。但它不适用于 MAC 和 Unix 操作系统。因此,不建议高要求的开发人员使用。
3.5 AndroChef Java 反编译器
Andochef 是一款基于 Windows 的图形用户界面软件,可处理 apk、dex、jar 和 java 类文件。它简单易用。
AndroChef Java Decompiler 是适用于 Windows XP、Windows 2003、Windows Vista、Windows 7、Windows 8、8.1 和 Windows 10 的 Java 反编译器,可从编译后的二进制 CLASS 文件中重建原始源代码。
AndroChef Java Decompiler 能够反编译最复杂的 Java 6 小程序和二进制文件,并从中生成准确的源代码。
该反编译器也适用于安卓 apk 文件。
对于大型 APK 文件(超过 10 MB),反编译可能需要几分钟甚至更长时间才能完成,具体取决于电脑配置和文件大小。
但要获得全部功能,您需要购买软件的授权版本。
3.6 JBVD – Java 字节码查看器和反编译器
JBVD 支持跨平台,如 Windows、Mac 和 Unix 环境。这是一款功能强大的 Java 字节码查看器和反编译器,使用了 javassist 开源库。
但自 2017 年以来,该程序未进行。
3.7 FernFlower
Fernflower 是第一个实际工作的 Java 分析反编译器,也可能是第一个高级编程语言的分析反编译器。
目前仍在更新维护。在全面开发和测试之前,最好不要使用这类反编译器。但如果你喜欢,可以尝试使用。如果你是 intellij 用户,那么你可能会喜欢它。这是用于 intellij idea 的插件、
3.8 CFR – Java 反编译器
CFT 完全是用 java 6 编写的,并为 java 现代语法提供反编译功能。如果您使用的是 java 8,那么它可以帮助您获得准确的结果。
它还可用于最新的 java 版本 java 9、12 和 14。最近的更新是在 2021 年,可以期待未来的进一步更新。通过使用该命令行界面,我们可以从中获取快速高效的源代码。
4. Java 在线反编译器
有些开发人员不喜欢在本地计算机上进行反编译,他们更喜欢在线反编译。或者,如果你只想反编译一个类文件,那么你可能需要使用在线反编译器。但我们强烈建议不要在生产代码库中使用在线反编译器。如果该类文件包含敏感信息,可能会成为黑客的切入点。
部分在线反编译器列表
4.1 javadecompilers.com
该在线反编译器需要上传 .class 文件,并从顶部工具中选择要使用的反编译器。
4.2 jdec.app
4.3 javAInuse – Java 在线反编译器
CLASS 文件是 Java 编译器创建的经过编译的 .JAVA 文件。它包含字节码,即在 Java 虚拟机(JVM)上运行时可执行的二进制程序代码。CLASS 文件通常被捆绑到 .JAR 文件中,并包含在 $CLASSPATH 环境变量中供执行。
4.4 decompiler.com
decompiler.com 在线反编译器适用于所有这些扩展–EXE 或 DLL、JAR 或 CLASS、APK、XAPK 或 DEX、PYC 或 PYO、LUAC 或 LUB、SMX 或 AMXX。
这是一款集所有功能于一身的反编译器,但它是在线的。
你还可以反编译 java 类、F#、C#、android、python 和 lua 代码。
4.5 devtoolzone.com
5. 结论
到目前为止,我们已经看到了许多用于离线和在线使用的 Java 反编译器。
如果你是 intelliJ 用户,那么你不需要这些,因为它已集成了内置的最佳反编译器。
如果你是 eclipse 用户,请使用 JDProject,因为它为 eclipse 提供了插件。
如果你正在学习 java,并且不使用任何集成开发环境,那么你可以选择在线反编译器。