介绍
有时我们可能需要在服务端临时修改jar中的文件,可能是修改jar中的可编辑文件,也可能是替换jar中的class文件。
本文就介绍这种需求如何操作。
修改jar中的可编辑文件
- 对于jar文件,我们可以直接用vi编辑,比如
vi test.jar
,会看到jar中的文件列表。
- 然后使用
/
输入文件名包含的关键字,定位到要编辑的文件那一行,回车。
- 上一步回车以后就会进入到对应文件的编辑界面,到这里我们就可以正常编辑了。
- 编辑完成后,按照vi的操作正常写入并退出即可。(因为这里多级进入,所以这里需要多次退出)
修改jar中的class文件
- 查找jar中文件的相对路径
jar tvf test.jar | grep 'MyTest.class'
如果查找到文件,会把文件的全路径输出:
5174 Fri Feb 01 00:00:00 CST 1980 BOOT-INF/classes/com/hsc/test/MyTest.class
- 把文件从jar中提取出来,这一步主要也是为了生成完成的路径目录
根据上一步获得的路径提取文件:
jar xvf test.jar BOOT-INF/classes/com/hsc/test/MyTest.class
文件提取时,会逐级生成目录,注意目录一定要保持。
- 修改或替换文件,再把新文件替换进入jar中
jar uvf test.jar BOOT-INF/classes/com/hsc/test/MyTest.class
经过以上3步,我们就完成了替换jar包中的文件。