在 Windows 上查看 Java Class、解码 Base64,并反编译为 Java 源码。
Windows 10/11 · Rust + Tauri 2 + Vue 3 · by OAyy
简体中文 · English
Class Inspector 使用 CFR 0.152 反编译 Java Class。文件在本机处理,不会上传,也不会运行待分析的 Class 文件。
- 打开文件或目录:支持文件选择、目录浏览和拖放。
- 解码文本:粘贴 Base64 或 Data URI,自动识别并解开嵌套的 Base64/GZIP 内容。
- 查看源码:提供 Java 语法着色、行号、选词高亮、自动换行、复制和另存。
- 搜索:查找当前源码,也可以搜索当前目录下所有 Class 的反编译结果。
- 快速切换文件:取消上一个尚未完成的任务,缓存最近查看的结果。
- 排查问题:在工作日志中查看错误、保存位置和处理耗时,并复制日志。
- 调整界面:支持浅色/深色主题、拖动分栏和键盘快捷键。
以下截图使用示例 Class 文件。
查看源码与搜索
从 GitHub Releases 下载 Windows x64 版本。
| 文件 | 怎么用 |
|---|---|
*-windows-x64-portable.zip |
免安装版,解压后运行里面的 EXE,推荐使用 |
*-windows-x64.msi |
双击安装,适合使用 Windows Installer 的环境 |
*-windows-x64-setup.exe |
双击安装,按向导操作 |
每个 Release 提供的文件可能不同,以下载列表为准。
运行需要:
- Windows 10/11 x64。
- Microsoft Edge WebView2 Runtime。
- Java JRE/JDK 8 或更高版本,并确保命令行运行
java -version能显示版本。
运行免安装版不需要 Node.js 或 Rust。压缩包已包含 CFR,请保留下面的文件位置,不要只复制 EXE:
Class-Inspector-v版本-构建时间/
├── Class-Inspector-v版本-构建时间.exe
├── README.txt
├── build-info.json
└── resources/
├── cfr.jar
└── CFR_LICENSE.txt
Release 同时提供 .sha256 文件,可用来核对 ZIP 是否完整。
- 点击 打开 Class 或 打开目录,也可以直接把文件或目录拖入窗口。
- 如果拿到的是编码文本,点击 解码文本,粘贴内容,确认保存目录后开始解码。
- 在右侧查看源码。按
Ctrl+F搜索当前文件,按Ctrl+Shift+F搜索当前目录。 - 点击 复制源码 或 保存源码。遇到错误时,打开底部的 工作日志 查看原因。
程序会自动将反编译结果保存为同目录下的 .java 文件:
打开 Demo.class → 显示源码,保存 Demo.java
粘贴 Base64/GZIP → 恢复 RealClassName.class,再保存 RealClassName.java
恢复 Class 时会读取其中的真实类名作为文件名;目标文件已存在时,先询问是否覆盖。Java 文件使用 UTF-8。即使自动保存失败,已生成的源码仍会留在界面中,方便复制或另存。
主题、换行、分栏和最近目录会保留到下次启动。工作日志只在本次运行期间保留,关闭程序后清空;日志不记录源码和 Base64 正文。
| 快捷键 | 操作 |
|---|---|
Ctrl+O / Ctrl+Shift+O |
打开 Class / 打开目录 |
Ctrl+B |
解码文本 |
Ctrl+S / Ctrl+Shift+C |
另存 / 复制源码 |
Ctrl+F / Ctrl+Shift+F |
搜索当前源码 / 搜索当前目录 |
F3 / Shift+F3 |
下一个 / 上一个匹配 |
F5 |
重新反编译当前文件,不使用缓存 |
Alt+Z |
开关自动换行 |
Ctrl+Alt+T |
切换主题 |
- 直接打开的文件须为
.class,暂不支持展开 JAR、WAR、EAR、APK 或 DEX。 - Base64 支持空白、缺失填充和 URL-safe 字符;Base64/GZIP 最多自动展开 6 层,GZIP 解压后的数据不超过 64 MiB。
- 一次目录扫描最多读取 20,000 个 Class 文件,不跟随符号链接。
- 全局搜索最多显示 500 个匹配行,搜索词最长 256 个字符。
- 源码超过 1,500,000 个字符或 20,000 行时,会关闭 Java 语法着色以减少界面卡顿;仍可搜索、复制和保存。
- 反编译结果不等于原始源码。注释和部分变量名可能丢失;缺少关联的 Class 文件时,类型信息也可能不完整。
除了 Java 和 WebView2,还需要 Node.js 20+、npm、稳定版 Rust MSVC 工具链,以及 Microsoft C++ Build Tools。
git clone https://github.com/zihaveaDream/Class-Inspector.git
cd Class-Inspector
npm install
npm run setup:cfr
npm run tauri devJavaScript 依赖的具体版本记录在 package-lock.json,Rust 依赖的具体版本记录在 src-tauri/Cargo.lock。
setup:cfr 会检查仓库里的 cfr.jar 是否完整;如果文件丢失,才从 CFR 官网下载。只看前端界面可运行 npm run dev,但打开本地文件和反编译功能需要 Tauri 桌面程序。
npm run build:native # 生成 EXE 和运行所需的资源
npm run build:portable # 生成免安装 ZIP,并解压启动检查
npm run build:release # 同时生成免安装 ZIP、MSI 和 NSIS 安装包生成的文件位于根目录的 releases/。每次构建使用一个单独的版本目录,文件名包含软件版本和北京时间,例如 Class-Inspector-v0.1.0-202610010051.exe。同一分钟重复构建同一版本时,脚本会停止,避免覆盖已有文件。
详细步骤和校验方法见 发布说明。
npm run test:config # 配置文件和目录位置检查
npm run test:privacy # 发布包中的本机路径检查规则
npm run test:rust # Rust 单元测试
npm run build # TypeScript 类型检查和前端构建
npm run test:all # 完整测试,需保留 tests/ 下的文件浏览器测试需要 Playwright Chromium;原生桌面测试需要 tauri-driver 和匹配的 EdgeDriver。如果本地删过测试文件,应先补齐所需文件再运行完整测试。准备步骤见 测试说明。
详细文档目前以中文为主。工具配置放在 config/,开发记录放在 project_docs/worklog/。
项目自身的源码暂未附独立许可证,如需复用或再分发,请先确认许可。CFR 0.152 使用 MIT License。



