背景
没有项目源码的情况下,项目无法启动 或 需要修改逻辑。因为没有源码就没有那么方便进行修改,并重新打包。
采用的方式是先解压jar,修改文件,压缩成jar包。
如果只是修改文本文件,例如:xml properties yaml等,直接用vim命令打开jar,/ 搜索到对应文件,回车进入文件,就是文本编辑后,:wq退出,:q退出jar列表,会看到jar文件日期事件是当前时间。
解压jar
如果是Linux系统使用命令:unzip -o myfile.jar -d /path/to/directory
传统压缩工具,例如360、好压、7z等都能进行解压文件。选中文件右键解压到对应目录
修改文件
如果是配置文件等文本文件,打开文本编辑器修改保存即可。
如果是class文件需要进行反编译,修改代码后,并重新编译成class。此处需要注意使用的jdk版本要与之前的class文件保持一致。例如如果之前是jdk1.8,修改完成编译class文件也要是1.8
打包jar文件
进入到解压的目录,注意jar的lib包是不能压缩的。使用命令重新打包
jar cvfm0 axis2-transport-http-1.7.7.jar axis2-transport-http-1.7.7\META-INF\MANIFEST.MF -C axis2-transport-http-1.7.7/ .注意最后的/ 和 . 是有空格的。重点在于0不执行压缩打包