下面我将为你详细介绍几种在 Eclipse 中实现 Java 反编译的方法,从最推荐到备选方案。

使用 JAD 插件 (最经典、最推荐)
JAD (Java Decompiler) 是一个历史悠久、非常强大的反编译器,虽然它已经很久没有更新了,但对于绝大多数 Java 代码(包括 Java 8 之前的代码)反编译效果依然出色。
第一步:下载 JAD
- 访问 JAD 的官方下载页面(或可靠的镜像站点)。
- 官方原始下载页面:http://www.varaneckas.com/jad/
- 在该页面找到
jad.exe(Windows) 或jad(Linux/Mac) 的下载链接,通常还会提供一个jad.zip文件,里面包含了配置文件。
- 下载
jad.exe和jad.zip。
第二步:安装 Eclipse 插件 (Eclipse Marketplace)
这是最简单、最标准的安装方式。
- 打开你的 Eclipse IDE。
- 点击顶部菜单栏的 Help -> Eclipse Marketplace...。
- 在搜索框中输入 "JAD" 或 "JADclipse" (JADclipse 是最流行的 JAD 插件)。
- 在搜索结果中找到 "JADClipse" 插件,点击 Install 按钮。
- 按照提示完成安装过程,同意许可协议,并等待安装完成,安装后,Eclipse 会提示你重启。
第三步:配置 JADClipse 插件
- 重启 Eclipse 后,进入菜单 Window -> Preferences。
- 在左侧导航树中找到 JADClipse -> Path。
- 在右侧的 Path to decompiler 文本框中,点击 Browse... 按钮,然后选择你刚刚下载的
jad.exe文件的完整路径。- 示例:
C:\tools\jad\jad.exe
- 示例:
- (可选)在 JAD options 中,可以添加一些命令行参数,一个常用的参数是
-nonlb,它可以防止反编译后的代码出现过多的空行,使格式更紧凑。 - 点击 Apply and Close 保存配置。
第四步:使用 JADClipse
你可以直接在 Eclipse 中查看任何 .class 文件的源代码了!
- 查看 JAR 包中的类:
- 在 Package Explorer 中,展开一个 JAR 文件(
rt.jar)。 - 找到一个
.class文件,双击它。 - 如果该类没有源码(
.java文件),Eclipse 会自动调用 JADClipse 反编译并显示其内容。
- 在 Package Explorer 中,展开一个 JAR 文件(
- 查看项目中的
.class文件:- 在你的 Java 项目中,右键点击一个
.class文件。 - 选择 Open With -> JADClipse Decompiler。
- 在你的 Java 项目中,右键点击一个
使用 Fernflower 插件 (现代、官方推荐)
Fernflower 是 JetBrains 开发的反编译器,并且是 IntelliJ IDEA 的内置反编译器,它对较新的 Java 特性(如 Java 8+ 的 Lambda 表达式、Stream API 等)支持更好,反编译代码的可读性通常也更高。

第一步:下载 Fernflower
- 访问 JetBrains 的官方 GitHub 仓库。
- Fernflower 是作为 IntelliJ IDEA 的一部分发布的,你可以从 IDEA 的发布页面找到它。
- 在该目录下,你会找到一个名为
fernflower.jar的文件,下载它。
第二步:安装 Fernflower 插件
最简单的方式是使用一个通用的反编译插件,然后手动配置 Fernflower。
- 同样,通过 Help -> Eclipse Marketplace 安装一个支持 Fernflower 的插件,一个不错的选择是 "Java Decompiler Plugin"。
- 安装并重启 Eclipse。
第三步:配置 Fernflower
- 进入菜单 Window -> Preferences。
- 找到 Java Decompiler 或 Java -> Decompiler 的配置项。
- 在配置界面,你需要设置 Decompiler 为 Fernflower。
- 在 Fernflower home 或 Path to fernflower.jar 文本框中,点击 Browse...,选择你刚刚下载的
fernflower.jar文件的完整路径。 - 点击 Apply and Close 保存配置。
配置完成后,使用方法与 JADClipse 完全相同,双击 .class 文件即可。
使用 JD-Eclipse 插件 (备选方案)
JD-Eclipse 是 JD-Core (Java Decompiler) 的 Eclipse 插件,JD-Core 是 JD-GUI 使用的核心引擎,也是一个非常流行的反编译器。
安装步骤
- 通过 Help -> Eclipse Marketplace 搜索 "JD-Eclipse"。
- 找到插件并点击 Install,完成安装和重启。
- 配置(通常可选):进入 Window -> Preferences -> General -> Editors -> File Associations。
- 在 "File types" 列表中,选择
*.class。 - 在 "Associated editors" 列表中,确保 "Class File Viewer (JD-Eclipse)" 被选中并设为默认。
总结与对比
| 特性 | JADClipse (JAD) | Fernflower | JD-Eclipse (JD-Core) |
|---|---|---|---|
| 反编译引擎 | JAD | Fernflower (JetBrains) | JD-Core |
| 代码可读性 | 良好,但格式可能略显老旧 | 优秀,格式现代,对 Java 8+ 支持好 | 良好,与 JD-GUI 体验一致 |
| Java 版本支持 | 对旧版 Java (Java 8及之前) 非常好 | 对新版 Java (Java 8, 11, 17等) 支持更好 | 支持较好,持续更新 |
| 插件成熟度 | 非常成熟,稳定 | 现代,在 IntelliJ IDEA 中是标准 | 成熟,稳定 |
| 推荐场景 | - 处理遗留项目或旧版库 - 追求极致的稳定性 |
- 处理现代 Java 项目 - 希望获得最可读的反编译代码 |
- 喜欢使用 JD-GUI 的用户 - 需要与 JD-GUI 保持一致的体验 |
常见问题与解决方法 (FAQ)
Q: 为什么我反编译后看到的代码还是一堆乱码(// Decompiled with Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.)?
A: 这说明 Eclipse 没有正确调用反编译器,请检查以下几点:

- 插件是否安装成功:在
Help->About Eclipse->Installation Details中查看插件列表。 - 路径是否配置正确:确保
jad.exe或fernflower.jar的路径是绝对且正确的。 - Eclipse 版本兼容性:确保你下载的插件版本与你的 Eclipse 版本兼容,Marketplace 通常会自动处理这个问题。
Q: 我只想反编译一个 JAR 文件里的所有代码,怎么办?
A: 你可以使用独立的反编译工具,JD-GUI (图形界面) 或 cfr (命令行)。
- JD-GUI:直接从 JD-GTI 官网 下载,然后打开你的 JAR 文件即可。
- 命令行工具 (如 CFR):
- 下载 CFR 的 JAR 包。
- 在命令行中运行:
java -jar cfr.jar your_library.jar --outputdir output_folder - 这会将
your_library.jar中所有类的反编译代码输出到output_folder中。
希望这份详细的指南能帮助你在 Eclipse 中顺利地进行 Java 反编译!对于绝大多数用户,我 强烈推荐从 JADClipse 开始,因为它简单、稳定且效果良好,如果你在处理新项目时遇到反编译效果不佳的问题,再尝试切换到 Fernflower。
