修改jar包中的class文件

需求及准备

需求

现在有一个.jar文件,要修改其中某个文件的代码。

准备

  • 确保JRE已安装且环境变量已配置。

  • 安装Java Decompiler。官方地址为:

    http://java-decompiler.github.io/

    选择其中的JD-GUI进行下载。

  • 安装winrar。

提取class内容并修改

打开JD-GUI,将.jar拖进来。JD-GUI会将jar包反编译为java源码。
在JD-GUI中可以看到反编译源码,但不能直接修改。找到要修改的文件,复制。
创建一个与.class同名的空白.java文件(为了后续生成.class不冲突,建议放在一个单独目录下),将复制的内容粘贴到该文件中。对其代码进行修改。

编译

打开CMD,定位到上面创建的.java所在目录下,输入:

javac xxx.java

编译后,会生成同名的.class文件。
注意此方式只能编译不依赖其他模块的.java文件。对于依赖其他模块的,需要分析并定位.class的虚拟机代码后,创建java工程引入jclasslib修改。可以参考修改jar中的class:杀戮尖塔修改教程

替换jar中class文件

替换jar中class有两种方式:

  1. 借助rar直接替换。
  2. 解压jar为文件夹,替换class后重新打包为jar。

借助winrar直接替换

使用winrar直接打开.jar文件,进入指定目录后,将刚才编译生成的class直接拖进来替换即可。

解压jar为文件夹,替换class后重新打包为jar

使用winrar将.jar文件解压为文件夹,然后替换class。
设该文件夹名称为xxx。打开CMD并定位到该文件夹所在目录下,输入:

jar cvfm xxx.jar xxx\META-INF\MANIFEST.MF -C xxx /

其含义为:使用xxx\META-INF\MANIFEST.MF作为配置文件,并调用-C切换路径为xxx文件夹下。然后打包出.jar文件。
注意-C xxx /最后的文件夹名称xxx与/之间有个空格,不可省略。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值