[IDEA插件] JarEditor 编辑jar包(直接新增、修改、删除jar包内的class文件)

文章目录

  • [1. 安装插件 JarEditor](#1. 安装插件 JarEditor)
  • [2. 在IDEA中添加外部JAR包](#2. 在IDEA中添加外部JAR包)
  • [3. JarEditor 使用介绍](#3. JarEditor 使用介绍)

之前我们需要修改jar内文件的时候需要解压jar包,反编译class,新建java源文件,修改代码,再编译成class,替换jar包内的class文件。

现在利用IDEA的修改jar插件JarEditor可以直接修改class文件,一气呵成。

https://plugins.jetbrains.com/plugin/24397-jareditor

1. 安装插件 JarEditor

File -> Settings -> Plugins

2. 在IDEA中添加外部JAR包

如果jar包在idea的External Libraries中不存在,外部文件可以通过File->Project Structure->Libraries添加。

3. JarEditor 使用介绍

在具体jar的目录下右键,可以做如下操作:

下面做一些演示。
在jar内新增文件

java 复制代码
package org.apache.commons.lang3;

public class XinliushijianTest {
    public static String SMILE = "HAHAHA!!!";

    public XinliushijianTest() {
    }

    public static String xinliushijianTest() {
        return "xinliushijian";
    }
}

在jar包内修改文件

让新增、修改的文件生效

如上图,从左到右依次点击。

  • 1. 切换到Jar Editor tab页
  • 2. 选择JDK版本
  • 3. 编译修改的java内容,并保存
  • 4. 将修改的class内容重新打包进jar包

Save/Compile会将修改的文件保存到jar包所在目录的jar_edit子目录下,Build Jar会把会jar_edit目录的文件增量写入jar,最后再删除这个目录

测试新增、修改的文件是否可以使用

java 复制代码
import org.apache.commons.lang3.RandomUtils;
import org.apache.commons.lang3.XinliushijianTest;

public class StringDemo11 {
    public static void main(String[] args) {
        String result = XinliushijianTest.xinliushijianTest();
        System.out.println("result: " + result);

        String result1 = RandomUtils.xinliushijianTest();
        System.out.println("result1: " + result1);

        System.out.println(XinliushijianTest.SMILE);
    }
}

打印
result: xinliushijian

result1: 心流时间

HAHAHA!!!

相关推荐
always_TT1 分钟前
内存泄漏是什么?如何避免?
android·java·开发语言
白鸽梦游指南4 分钟前
docker仓库的工作原理及搭建仓库
java·docker·eureka
※DX3906※4 分钟前
SpringBoot之旅4: MyBatis 操作数据库(进阶) 动态SQL+MyBatis-Plus实战,从入门到熟练,再也不踩绑定异常、SQL拼接坑
java·数据库·spring boot·spring·java-ee·maven·mybatis
java1234_小锋8 分钟前
Java高频面试题:怎么实现Redis的高可用?
java·开发语言·redis
jiankeljx12 分钟前
MySQL-mysql zip安装包配置教程
java
FlagOS智算系统软件栈13 分钟前
智源×Eclipse基金会携手打造PanEval,中欧协同开启“评测+开源+合规”新模式
java·eclipse·开源
guo1.15 分钟前
IDEA 导入依赖快捷键Ctrl + Shift + O ,Ctrl + Alt + O不生效
intellij-idea
日出等日落19 分钟前
用 Kavita实现我的远程数字书屋搭建记!
java·开发语言·ide·vscode·编辑器
Alan GEO实施教练26 分钟前
实用新型专利申请代理机构选择:关键考量因素与实操要点讲解
java·开发语言·python
gelald28 分钟前
JVM - 类加载机制
java·jvm·后端