Skip to content

About

一款本地 Java Class 查看工具。

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Class Inspector

Class Inspector

在 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 文件。

查看源码与搜索

浅色界面:查看 DemoService 的 Java 源码并搜索 format

解码 Base64 / GZIP 文本

粘贴编码内容,确认保存位置后点击“解码并打开”。

解码窗口:粘贴 Base64 内容并恢复 Class 文件

搜索整个目录(深色主题)

一次查找多个 Class 的反编译结果,点击结果即可打开对应文件。

深色界面:在两个 Class 文件中搜索 format

查看工作日志

查看反编译结果、文件保存位置和耗时,遇到问题时可复制日志。

工作日志:查看文件输出、处理结果和耗时

下载与运行

从 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 是否完整。

快速开始

  1. 点击 打开 Class 或 打开目录,也可以直接把文件或目录拖入窗口。
  2. 如果拿到的是编码文本,点击 解码文本,粘贴内容,确认保存目录后开始解码。
  3. 在右侧查看源码。按 Ctrl+F 搜索当前文件,按 Ctrl+Shift+F 搜索当前目录。
  4. 点击 复制源码 或 保存源码。遇到错误时,打开底部的 工作日志 查看原因。

程序会自动将反编译结果保存为同目录下的 .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 dev

JavaScript 依赖的具体版本记录在 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。

About

一款本地 Java Class 查看工具。

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages