修改JAR文件工具

简介: 本文介绍了一款名为JarEditor的IDEA插件,该插件允许用户直接对JAR包内的文件进行增删改查操作,无需先行解压。通过简单的安装与使用步骤,大大简化了传统上需要解压缩、反编译、重新编译及打包的过程。此外,JarEditor还支持对混淆过的JAR文件进行字节码级别的修改,并提供了强大的搜索功能,支持大小写、全词匹配和正则表达式搜索。对于开发者而言,这款插件无疑极大提高了处理JAR文件的效率和便捷性。

背景

在开发中我们有时会遇到这样的场景,需要修改jar包内某个class,常见的方法就是先解压缩,然后反编译这个class,新建java修改再编译,最后再打包,整个过程是非常耗时的。
这里向大家介绍一款IDEA插件:JarEditor,可以一键修改JAR包内文件,无需解压。

插件安装

首先在插件商城搜索 JarEditor,可直接安装插件

JarEditor_install.png

插件使用

安装完后,任意打开一个jar的class,可以看到反编译后的class内容,选中Jar Editor的tab页签,修改完代码后先点击 Save,这个过程会编译class,编译成功后点击Build Jar就修改jar完成了,就可以直接编辑class了,下面是一个例子:
JarEditor_demo.gif

修改配置和资源文件不要勾选Compile,其他步骤相同。

在JAR文件上右键,可对JAR内文件进行增/删/改/查/复制/粘贴
JarEditor_new_delete.png

搜索功能支持JAR内搜索和全局搜索,支持大小写、全词匹配和正则表达式。
JarEditor_search.png

针对混淆的JAR,也可以通过字节码修改工具直接修改class,而不是普通的编译方式。
比如可以用Javassist,进行字段和方法的增删改。
JarEditor_javassist.png

也可用VisualClassBytes(基于ASM和BCEL的字节码编辑器),可修改类信息、常量池、字段、内部类,以及方法的基本信息、字节码指令、本地变量表、行号表和异常表等。
vcb_main.png

附:修改外部jar

File->Project Structure->Libraries,然后添加工程外的jar即可打开jar内文件修改。

也可以在JAR文件上右键->Add as Libraries.

总结

本文主要介绍了使用JarEditor直接对jar包文件进行增删改查操作,简化了修改jar的流程,感兴趣的朋友可以去试试。

本文篇幅有限,具体原理和实现细节可阅读源码

源码:https://github.com/Liubsyy/JarEditor

目录
相关文章
|
7月前
|
Java 数据库 数据安全/隐私保护
Java操作Excel文件导入导出【内含有 jxl.jar 】
Java操作Excel文件导入导出【内含有 jxl.jar 】
97 0
|
3月前
|
Java Windows
如何在windows上运行jar包/JAR文件 如何在cmd上运行 jar包 保姆级教程 超详细
本文提供了一个详细的教程,解释了如何在Windows操作系统的命令提示符(cmd)中运行JAR文件。
1457 1
|
5月前
|
Java Maven 容器
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
使用IntelliJ IDEA的Artifacts功能,可以将项目依赖的第三方jar包打包进jar文件中,实现双击jar包即可直接运行。
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
|
7月前
|
XML 运维 Java
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
63 1
|
7月前
|
IDE 数据可视化 Java
Java基础6-Java文件和Java包结构和常用的jar包(二)
Java基础6-Java文件和Java包结构和常用的jar包(二)
89 0
|
7月前
|
Java Unix 编译器
Java基础6-Java文件和Java包结构和常用的jar包(一)
Java基础6-Java文件和Java包结构和常用的jar包(一)
115 0
|
8月前
|
运维 Dubbo Java
Serverless 应用引擎产品使用之在 Serverless 应用引擎中,查看镜像文件中的 JAR 文件如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
189 2
|
8月前
|
Java
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
700 0
|
8月前
|
运维 JavaScript Java
Serverless 应用引擎产品使用之阿里云Serverless函数计算中,在Node.js环境中执行jar文件如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
6月前
|
Java
[JarEditor]可直接修改jar包的IDEA插件
### 修改JAR包变得更简单:JarEditor插件简介 **背景:** 开发中常需修改JAR包中的class文件,传统方法耗时费力。JarEditor插件让你一键编辑JAR包内文件,无需解压。 **插件使用:** 1. **安装:** 在IDEA插件市场搜索JarEditor并安装。 2. **修改class:** 打开JAR文件中的class,直接编辑,保存后一键构建更新JAR。 3. **文件管理:** 右键菜单支持在JAR内新增/删除/重命名文件等操作。 4. **搜索:** 使用内置搜索功能快速定位JAR包内的字符串。
587 2
[JarEditor]可直接修改jar包的IDEA插件