# JarEditor **Repository Path**: tan_jiecheng/JarEditor ## Basic Information - **Project Name**: JarEditor - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-01 - **Last Updated**: 2024-12-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
### 2. 编辑并构建 Jar
安装完成后,在.class反编译文件中可以看到切换到Jar Editor的tab页。
> **外部jar** :File->Project Structure->Libraries->Add Library,然后就可以看到反编译的jar了。
修改完成后,点击**Save(Compile)**,编译并保存当前修改的java内容。
最后点击**Build Jar**,将编译保存的类文件写入Jar包中。
修改jar包中的资源文件也是支持的。
下面是一个演示例子:
### 3. 修改字节码工具
针对混淆jar,反编译的效果不是很好,此时可以使用直接修改字节码工具
点击 **Class bytes tool** 图标选择工具
- **Javassist** : 可以对字段/方法/构造函数/静态代码块进行增删改 (包括内部类)
- [**Visual ClassBytes**](https://github.com/Liubsyy/VisualClassBytes) : Class字节码编辑器,基于 ASM 和 BCEL
### 4. 其他操作
在jar包的项目视图中,右键可以看到**JarEditor->New/Delete**等操作,可以在jar内添加/删除/重命名/复制/粘贴/导出文件。
点击 **Search** 图标,可以搜索jar包的内容,如果是class jar将根据反编译的内容进行搜索
## 一些机制
- 编译依赖的JDK是你的SDK列表中的JDK。您可以选择SDK和编译类的目标版本。
- 编译java时所依赖的classpath就是项目的Libraries依赖。如果找不到依赖包,可以添加Libraries(File->Project Structure->Libraries)。
- Save(Compile)会将修改后的文件保存到jar包所在目录的子目录**jar_edit_out**中,Build Jar会将修改的文件增量写入jar中,最后删除这个临时目录。
### SDK Default对应JDK版本
编译选择 **SDK Default** 时,使用的是Jetbrains集成的运行时JDK(JBR),如果不选SDK Default则是具体用户安装的JDK
IDEA|JDK
---|---
IDEA 2020.3 - IDEA 2022.1 |JBR JDK11
IDEA 2022.2 - IDEA 2024.1 |JBR JDK17
IDEA 2024.2 及更高版本 |JBR JDK21