if exist local (rd /S/Q local)
md local
move abc.jar local\abc.jar
cd local
jar -xf abc.jar
cd ..
move local\abc.jar abc.jar
move server.jar local\server.jar
cd local
jar -xf server.jar
cd ..
move local\server.jar server.jar
cd local
jar -cfM0 abc.jar *
cd ..
move local\abc.jar abc.jar
java -jar abc.jar
注释:abc.jar为本地文件 server.jar为从服务端下载来的文件 内部不包含配置文件
先把abc.jar复制到 local 目录 进行解压 再把server.jar 复制到 local 目录进行解压 这样 local 目录是新的程序文件和不变的
配置文件 执行jar -cfM0 abc.jar * 进行打包
参考 https://www.cnblogs.com/dayou123123/p/6845432.html#_label2
jar重新打包
后来对于最先想到的方法又在网上查了下,也有对应的解决办法,但是会有两个问题要处理
- 阻止jar打包时重新生成清单列表,
-M
不配置配置清单,这样还可以使用maven
生成的配置清单也就是MANIFEST.MF
jar -cfM xxx.jar *
- jar打包时不进行压缩
-0
jar -cfM0 xxx *
压缩的话会有错误,如下:(已被压缩,嵌套的jar文件无需被压缩)
Unable to open nested entry 'BOOT-INF/lib/cache-api-0.4.jar'.
It has been compressed and nested jar files must be stored without compression.
最终命令:jar -cfM0 xxx.jar *