jar打包命令使用的方法,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
今天老版本项目出了个错误,当时svn上没有打分支,于是反编译了一下,找到相应几个要修改的文件,修改后替换进的去,发现启动失败(弹簧引导项目)提示
Exception 拷贝thread “main", java.lang.IllegalStateException:, Unable 用open nested entry & # 39; BOOT-INF/lib/antlr-2.7.7.jar& # 39;。 It has  been compressed 以及nested jar files must be stored without 压缩只Please check 从而mechanism used 用create your executable jar 文件
PS E: \ pwd0508 \ b2b-erp> java -jar 。\ b2b-erp.jar Exception thread 拷贝;“main", java.lang.IllegalStateException:, Unable 用open nested entry & # 39; BOOT-INF/lib/antlr-2.7.7.jar& # 39;。 It has  been compressed 以及nested jar files must be stored without 压缩只Please check 从而mechanism used 用create your executable jar 文件 ,,,,,,,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)
提示意思:jar内部依赖的第三方包被压缩了,看提示是春天的发射器抛出的,应为是自己大的包,没法就看了一罐下命令:
PS E: \ pwd0508 \ b2b-erp> jar 用法:jar {ctxui} [vfmn0PMe], [jar文件],[清单文件],[入口点],[-C dir], files … 选项: ,,,-c ,创建新档案 ,,,-t ,列出档案目录 ,,,-x ,从档案中提取指定的,(或所有),文件 ,,,-u ,更新现有档案 ,,,-v ,在标准输出中生成详细输出 ,,,-f ,指定档案文件名 ,,,-m ,包含指定清单文件中的清单信息 ,,,-n ,创建新档案后执行,Pack200 规范化 ,,,-e ,为捆绑到可执行,jar 文件的独立应用程序 ,,,,,,,指定应用程序入口点 ,,,0,,仅存储;,不使用任何,ZIP 压缩 ,,,-P ,保留文件名中的前导,& # 39;/& # 39;,(绝对路径),和,“…“,(父目录),组件 ,,,-M ,不创建条目的清单文件 ,,,我,,为指定的,jar 文件生成索引信息 ,,,-C ,更改为指定的目录并包含以下文件 如果任何文件为目录,,则对其进行递归处理。 清单文件名,档案文件名和入口点名称的指定顺序 与,& # 39;猴# 39;,,& # 39;f # 39;,和,& # 39;e # 39;,标记的指定顺序相同。 示例,1:,将两个类文件归档到一个名为,classes.jar 的档案中: ,,,,,,jar cvf classes.jar Foo.class Bar.class 示例,2:,使用现有的清单文件,& # 39;mymanifest& # 39;并 ,,,,,,,,,,将,foo/,目录中的所有文件归档到,& # 39;classes.jar& # 39;,中: ,,,,,,jar cvfm classes.jar mymanifest -C foo/,。
<强>【划重点】强>
jar -cvf0m b2b-erp.jar \ meta - inf \ MANIFEST.MF 。
打包成功,执行以下,弹簧引导图标出来了,成功!
PS E: \ pwd0508 \ b2b-erp> java -jar 。\ b2b-erp.jar ,,只,____ ,,,,,,,,, _ ,,,,,,,,,,, __ _ _ ,/\ \/,___ # 39;_ __ _ _ (_) _ __ , __ _ \, \ \, \ (,(,)\ ___ |, & # 39; _ |, & # 39; _ |, |, & # 39; _ \/, _”, | \ \祝福;\,\ ,\ \/,___)|,| _)|,|,|,|,|,| |,(_ |,|,,),),,) null null null null null null null null null null null null null罐子打包命令使用的方法