iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >使用jd-gui反编译修改jar包里的.class并重新生成新jar
  • 933
分享到

使用jd-gui反编译修改jar包里的.class并重新生成新jar

jarjavajvm 2023-08-21 13:08:26 933人浏览 独家记忆
摘要

准备工具:jd-gui.exe反编译工具下面以我本地修改graphql-java-15.0.jar包为例: 准备jar包,新建origin文件夹,将jar包通过win.rar或当前文件夹cmd运行解压命令jar -xvf graphql-j

  • 准备工具:jd-gui.exe反编译工具
  • 下面以我本地修改graphql-java-15.0.jar包为例:
  1. 准备jar包,新建origin文件夹,将jar包通过win.rar或当前文件夹cmd运行解压命令jar -xvf graphql-java-15.0.jar解压到origin文件夹内
    在这里插入图片描述
    在这里插入图片描述
  2. 使用 jd-gui工具 打开graphql-java-15.0.jar
    在这里插入图片描述
    假如我要修改Assert.class,不要在 jd-gui工具里面修改,先ctrl+s保存要修改的文件到某目录
    在这里插入图片描述
    我保存在跟graphql-java-15.0.jar同目录下
    在这里插入图片描述
  3. 使用文本编辑工具(我用nodepad),修改java文件里的某段逻辑,然后通过命令重新编译该java文件为class文件
javac -cp graphql-java-15.0.jar Assert.java   //  -cp graphql-java-15.0.jar  表示Assert.java编译时依赖graphql-java-15.0.jar

在这里插入图片描述
4. 用编译好的Assert.class替换掉原先解药的origin目录里的,使用命令将origin目录里的文件打包为新的jar包:
先进入到origin,执行打包命令:

jar -cvfm0 graphql-java-15.0-modify.jar META-INF/MANIFEST.MF ./

至此便生成新的jar包
在这里插入图片描述
5. 引用修改后的jar包
将jar包放在项目lib,修改pom文件
在这里插入图片描述

注意!!!
原本通过pom引入的jar包,如果有外部包,要手动引入,我们修改后引入的graphql-java-15.0-modify.jar不会自动导入这些外部依赖包
在这里插入图片描述
在pom文件引入:

<dependency><groupId>org.antlrgroupId><artifactId>antlr4-runtimeartifactId><version>4.7.2version>dependency><dependency><groupId>com.graphql-javagroupId><artifactId>java-dataloaderartifactId><version>2.2.3version>dependency><dependency><groupId>org.ReactivestreamsgroupId><artifactId>reactive-streamsartifactId><version>1.0.3version>dependency><dependency><groupId>org.slf4jgroupId><artifactId>slf4j-apiartifactId><version>1.7.29version>dependency>

来源地址:https://blog.csdn.net/Z_Plin/article/details/129200266

--结束END--

本文标题: 使用jd-gui反编译修改jar包里的.class并重新生成新jar

本文链接: https://www.lsjlt.com/news/376964.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作