Linux下使用shell解压打包jar包

来源:互联网 发布:淘宝店怎么提升销量 编辑:程序博客网 时间:2024/05/01 06:54

linux 下使用shell解压打包jar包

在工作做时,有时会碰到开发人员并没有把配置文件独立出来,而量把他打包进了jar包里面,这里运维人员会产生很大的影响,特别的是在调试需要经常修改配置文件的时候,运维人员需要把jar包下载到本地,解压,修改配置文件,打包,在上传。 极大的影响效率。其时在linux下通过jar命令,就可以直接解压和打包,省去了下载上传的时间。

jar包服务端解压

jar包的本质其时就是一个压缩包,甚至可以使用unzip命令去解压,但是我并推荐这种方式,因为unzip虽然可以解压jar包,但可能会有意想不到的问题。这里还是使用java官方的jar命令。具体请看以边。

  jar -xvf test.jar

和Linux下的tar命令的参数是一样的。这个就可以方便的修改配置文件了。

linux下打包jar包

现在已把jar解压了,并且已经修改完配置文件了。那么如果把他更新到jar包里呢,其实和tar的压缩很相似,就是用jar -cvf0m 具体如下。

jar -cvf0m test.jar MANIFEST.MF *

其中-0代表不压缩,有些jar里会包含有其它jar包,此时不哪不加-0参数,会报类似如下错误

 Exception in thread "main" java.lang.IllegalStateException: Unable to open nested entry 'BOOT-INF/lib/sansec.SwxaJCE-2.1.3.jar'. It has been compressed and nested jar files must be stored without compression. Please check the mechanism used to create your executable jar file    at org.springframework.boot.loader.jar.JarFile.createJarFileFromFileEntry(JarFile.java:285)    at org.springframework.boot.loader.jar.JarFile.createJarFileFromEntry(JarFile.java:260)    at org.springframework.boot.loader.jar.JarFile.getNestedJarFile(JarFile.java:248)    at org.springframework.boot.loader.jar.JarFile.getNestedJarFile(JarFile.java:237)    at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchive(JarFileArchive.java:103)    at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchives(JarFileArchive.java:87)    at org.springframework.boot.loader.ExecutableArchiveLauncher.getClassPathArchives(ExecutableArchiveLauncher.java:72)    at org.springframework.boot.loader.Launcher.launch(Launcher.java:49)    at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:58)

-m 为指定MANIFEST.MF文件,包括启动类及依赖关系等。都是在这个文件下描述的。
其中-cvf就是解释了,会玩linux的都有应该懂,如果这也不知道的话,也就不用看我的这篇博客了。

1 0