服务器上修改基于springboot的jar包文件
问题描述
现在基于springboot的服务器jar包体积越来越大,
当我们在特殊场景下,比如压力测试或者排查问题想临时修改下jar包里的内容验证下,
是不是非要重新打包上传文件呢?
答案当然是否。
解决方案
- jar命令解压jar包
##解压servr.jar
jar xvf server.jar
- 修改文件
- 修改配置文件
用vi修改对应内容
- 修改class文件
修改class文件,需要重新编译
##在当前server解压的目录下
javac -cp .:BOOT-INF/classes:BOOT-INF/lib/对应编译用到的jar包 cn/yu/Test.java
注意:linux服务器下,如果多个jar包就用冒号分割,Test.java要编译,放到包名目录下。
对了如果没有源代码可以考虑反编译工具。
- 重新打包
jar -uvf server.jar BOOT-INF/classes/cn/yu/Test.class
注意:jar重新打包,对应的Test.java或者配置文件要按jar原来的路径存放一致。
最后
这时候新的server.jar 就是个有效的jar了。
基于以上的操作,就不用在测试等情况下,每次验证和测试都要重新编译打包再上传发布。但是一定要测试没问题后,统一版本,切记切记!