修改jar包中的内容
思路:使用jd-gui对jar中需要修改的地方进行定位,然后使用javassist对jar中的内容进行修改生成对应类的新的class文件,然后打开jar(打开方式使用压缩工具),找到对应的位置,删除老的文件,将修改后新生成的文件拖入。
1.工具地址:
jd-gui:https://www.onlinedown.net/soft/70298.htm (第三方地址,通过这个下载需要注意,点错的话可能会被捆绑安装)
javassist:该工具我通过maven导入。
1 <!-- https://mvnrepository.com/artifact/org.javassist/javassist --> 2 <dependency> 3 <groupId>org.javassist</groupId> 4 <artifactId>javassist</artifactId> 5 <version>3.27.0-GA</version> 6 </dependency>
2.jd-gui定位:
通过jd-gui工具直接选取你需要改动的jar包,打开即可看到如下内容:
在其中找到你要修改的类,查看类里面的内容。
3.创建新项目通过javassist获取方法并将自己新编写的方法替换。
忽略掉项目名称和其他乱七八糟的东西(图省事随便开了个项目),main方法里写的便是获取类、获取类方法、重新塞入新定义的方法,指定新的class文件输出位置。
4.使用压缩工具打开jar包,找到需要替换的文件,替换掉。
直接替换掉即可,随后重新在项目中导入jar文件,即可使用替换后的jar。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?