[Java] 借助GUI展示class文件的内容(v1.0版本)

背景

之前我花了不少时间写了一个 简易的 class 文件解析工具(它的部分功能还没有完成)。这个工具没有 GUI,考虑到现在 AI 编程非常方便,可以让 trae 帮忙完成 Swing 的部分,从而让这个工具支持 GUI。本文会展示这个工具(GUI 版本)的基本用法。

正文

下载源代码

直接下载

从 简易的 class 文件解析工具 页面可以将源代码下载下来。

通过执行 git 命令下载

您通过执行以下命令也可以下载源代码

bash 复制代码
git clone https://github.com/fanofxiaofeng/naive-class-file-parser.git

运行 GUI 版本

切换分支

下载完成后,通过执行以下命令,就可以将代码切换到 feature_gui 分支。

bash 复制代码
git checkout feature_gui

启动

在项目顶层执行如下命令,就可以运行 GUI 版本

bash 复制代码
mvn compile exec:java -Pgui

启动后的效果如下图所示

选择一个 class 文件后,就可以对其进行解析。

核心功能

概览(Overview)部分

Overview 部分的示例效果如下图所示 ⬇️

在 Overview 部分,可以看到以下内容

字段 我是否已经对其进行简单的验证
magic ✅
minor_version ✅
major_version ✅
access_flags ✅
this_class ✅
super_class ✅
interfaces ❌
constant_pool_count ❌
fields_count ❌
methods_count ❌
attributes_count ❌

常量池(Constant Pool)部分

在 Constant Pool 部分,可以常量池中的各项。如果双击某一行,可以看到这一项所引用的 slot(如有)。

常量池涉及很多种类型,目前我的验证情况列举如下 ⬇️

Tag 常量类型 我是否已经对其进行简单的验证
1 CONSTANT_Utf8 ✅
3 CONSTANT_Integer ✅
4 CONSTANT_Float ✅
5 CONSTANT_Long ✅
6 CONSTANT_Double ✅
7 CONSTANT_Class ✅
8 CONSTANT_String ✅
9 CONSTANT_Fieldref ❌
10 CONSTANT_Methodref ❌
11 CONSTANT_InterfaceMethodref ❌
12 CONSTANT_NameAndType ❌
15 CONSTANT_MethodHandle ❌
16 CONSTANT_MethodType ❌
17 CONSTANT_Dynamic ❌
18 CONSTANT_InvokeDynamic ❌
19 CONSTANT_Module ❌
20 CONSTANT_Package ❌

字段表(Fields)部分

字段表的示例效果如下,其内容还有待完善

方法表(Methods)部分

方法表的示例效果如下,其内容还有待完善

属性表(Attributes)部分

属性表的示例效果如下,其内容还有待完善

参考资料

简易的 class 文件解析工具

相关推荐
wangruofeng1 小时前
GPT-6.1 辅助我半天完成架构升级:GPT Image 提示词网站 9K+ 图片迁入 Cloudflare R2
aigc·ai编程
皮皮林5512 小时前
Java 导出 Excel 利器:JXLS
后端
吃饱了得干活2 小时前
从 LIKE 查询到毫秒级搜索:Elasticsearch 核心原理与 Java 实战
后端·elasticsearch
邵奈一2 小时前
2.5倍速不降智:Opus 5.5极速版开闸
大模型·ai编程·claude·opus5.5·极速模式
kunicoding3 小时前
多线程编程核心概念详解:从线程基础到并发安全
java·jvm·安全
我命由我123453 小时前
智能助手通用问答边界
人工智能·python·学习·ai·学习方法·ai编程·智能体
tianbin9114 小时前
大模型训练与推理:API中转站在企业AI落地中的隐藏价值
大数据·后端·ai
打工仔折腾 AI4 小时前
用 Dashlet 把极空间 NAS 服务入口整理成统一导航首页的实践
java·开发语言·人工智能·后端·python·rpc·ai agent 实战
桃西西呀4 小时前
搜「怎么做接口限流」,向量库却把「怎么做缓存」的段落递了上来
人工智能·llm·ai编程