jar包修改与重新打包
程序员文章站
2024-02-02 21:06:10
...
jar包修改与重新打包
一、借助java decompiler 工具把jar包反编译。示例:bcprov-jdk15on-153.jar
然后依次操作 File===>Save All Sources 导出反编译Java文件 。(方便以下修改某个文件导入包中的关联文件)
二、使用eclipse新建项目把导出java文件放到对应目录下。
接下来就是保证你修改的java文件不报错能够正常编译成class文件即可。
三、解压原jar包,替换修改文件。
使用压缩包工具解压 bcprov-jdk15on-153.jar 如下图:
基本都是2个文件夹,其中META-INF 文件无需理会,里面配置jar的class类方法参数等,重新打jar包后可 自动生成 。然后在org文件夹找到需要替换的文件目录把对应的class文件替换即可。(提示:替换前最后先备份)
四、重新把修改后的class文件打成jar包。
网上有几种打jar包方法:
1,使用压缩包工具把META-INF与org打包成zip包,然后更改后缀名为.jar。 本人亲测,此方法打成的jar在项目中根本使用不了,更改后的与原来META-INF里的配置不一致。 故不可取
2,根据解压后META-INF文件中MANIFEST.MF配置使用如下命令打包
jar cvfm bcprov-jdk15on-153.jar bcprov-jdk15on-153\META-INF\MANIFEST.MF -C bcprov-jdk15on-153/ .
本人亲测,此方法打包导入项目中也无法正常使用,错误信息与方法1一致。故不可取
3,通过cmd到指定目录下,然后使用jar命令 jar -cvf [jar包的名字] [需要打包的文件]
例如 jar cvf bcprov-jdk15on-153.jar org
然后把新的jar包替换原来项目中的jar包即可。(提示:替换前先备份)
五、新jar包导入项目后可能遇到问题:
1,新jar包的结构与原来jar包不一致,可自行检查。
2,使用jar包后报错 Unsupported major.minor version 52.0: 或者 Unsupported major.minor version 51.0:
这种问题是修改的文件编译环境jdk版本与项目实际使用的版本不一致。具体操作可参考下面链接
Unsupported major.minor version 错误解决方法
上一篇: 有关大王的文章推荐10篇