引言
开发 Java 项目时,我们经常需要查看 JAR 包的源代码 —— 无论是调试依赖问题、学习框架实现,还是理解第三方库逻辑。但 JAR 包本质是.class
文件的压缩包,直接打开是字节码。本文整理了5 种当前最流行的源码查看方案,覆盖 Maven 项目、非 Maven 项目、主流 IDE(IDEA/Eclipse)等场景,附详细操作示例,零基础也能快速上手!
一、Maven 项目:自动下载源码(开发首选)
Maven 项目通过pom.xml
管理依赖,IDE 可直接关联官方源码,无需反编译,最推荐!
适用场景
项目使用 Maven/Gradle 管理依赖(如 Spring Boot、MyBatis 等框架项目)。
操作步骤(以 IntelliJ IDEA 为例)
-
自动下载源码(推荐配置)
- 打开 IDEA,进入
File > Settings > Build, Execution, Deployment > Build Tools > Maven
。 - 勾选
Download sources
(自动下载源码)和Download documentation
(可选,下载 API 文档)。 - 点击
OK
保存,后续 Maven 拉取依赖时会自动下载源码。
示意图:Maven 自动下载源码配置
- 打开 IDEA,进入
-
手动下载源码(未自动下载时)
- 在
Project
面板中,找到External Libraries
目录下的目标 JAR 包(如spring-context-6.1.3.jar
)。 - 右键点击 JAR 包,选择
Download Sources
(或快捷键Ctrl+Shift+A
搜索 “Download Sources”)。 - 等待下载完成后,双击 JAR 包中的
.class
文件(如ApplicationContext.class
),IDEA 会自动跳转到源码界面。
- 在
二、非 Maven 项目:JD-GUI 图形化反编译(零基础友好)
JD-GUI 是一款免费、无需安装的图形化反编译工具,直接拖拽 JAR 包即可查看源码,适合快速验证或非 IDE 场景。
操作步骤
-
下载 JD-GUI
访问官方 GitHub,下载对应系统的版本(如 Windows 选jd-gui-1.6.6.exe
)。 -
查看 JAR 源码
- 双击启动 JD-GUI,界面如下:
示意图:JD-GUI 主界面 - 将目标 JAR 包(如
hutool-all-5.8.16.jar
)直接拖入窗口,左侧会显示包结构,右侧自动反编译出源码。 - 若需保存源码,点击
File > Save All Sources
,会生成与 JAR 包结构一致的.java
文件目录。
- 双击启动 JD-GUI,界面如下:
三、Eclipse 项目:Class Decompiler 插件(老用户适配)
Eclipse 新版支持通过插件集成反编译功能,无需手动配置 Jad,兼容 Java 8~17。
操作步骤
-
安装插件
- 打开 Eclipse,进入
Help > Eclipse Marketplace
。 - 搜索
Eclipse Class Decompiler
,点击Install
完成安装(需重启 Eclipse)。
- 打开 Eclipse,进入
-
配置默认反编译器
- 进入
Window > Preferences > General > Editors > File Associations
。 - 选择
.class without source
类型,点击Add...
,选择Eclipse Class Decompiler
作为默认编辑器。
- 进入
-
查看源码
- 在
Package Explorer
中找到目标 JAR 包(如log4j-core-2.20.0.jar
)。 - 展开 JAR 包,双击
.class
文件(如Logger.class
),Eclipse 会自动反编译并显示源码。
- 在
四、IDEA 内置反编译(无需插件,高效便捷)
IntelliJ IDEA 内置了高性能的反编译器,无需额外工具,直接查看 JAR 源码。
操作步骤
-
直接打开 JAR 包
- 在 IDEA 中,通过
File > Open
选择目标 JAR 包(或直接拖拽到项目窗口)。 - IDEA 会以 “JAR 包资源管理器” 形式打开,左侧显示包结构,右侧自动反编译
.class
文件。
- 在 IDEA 中,通过
-
查看混淆后的源码(可选)
若 JAR 包经过混淆(如变量名变为a/b/c
),可安装Bytecode Viewer
插件增强反编译效果:- 进入
File > Settings > Plugins
,搜索Bytecode Viewer
并安装。 - 右键
.class
文件,选择View Bytecode
或Decompile
,可查看更接近原始代码的反编译结果。
- 进入
五、命令行工具:Procyon(极客向)
若需批量反编译或集成到脚本中,可使用命令行工具Procyon
,支持 Java 7~17 字节码。
操作步骤
-
安装 Procyon
- 下载
procyon-decompiler-0.6.0.jar
(官网下载)。 - 配置环境变量:将 JAR 路径添加到
PATH
,或通过java -jar
执行。
- 下载
-
反编译 JAR 包
执行以下命令,将 JAR 包反编译到output
目录:bash
java -jar procyon-decompiler-0.6.0.jar -o output my-library.jar
输出结果示例:
plaintext
Decompiled 123 classes (100%) Output written to: /path/to/output
注意事项(重要!)
- 法律风险:反编译受版权保护的 JAR 包(如商业闭源库)可能违反《计算机软件保护条例》,仅建议用于学习或开源项目。
- 源码完整性:反编译结果可能与原始代码有差异(如 Lambda 表达式、局部变量名丢失),仅供参考。
- 工具兼容性:优先选择 JD-GUI、IDEA 内置反编译器等现代工具,旧工具(如 Jad)可能不支持 Java 11+。
总结
本文覆盖了Maven 自动下载、JD-GUI 图形化、IDE 内置反编译、命令行工具等 5 种主流方案,可根据场景选择:
- 开发中优先用 Maven/IDEA 自动关联源码(高效);
- 临时查看用 JD-GUI(无需安装);
- 批量处理用 Procyon(脚本集成)。