打包好的jar,由于有多个依赖项,所以就直接将这些依赖项全打包到同一个jar中,准备用通过CMD来运行,结果出了个java.lang.NoClassDefFoundError异常,网上查资料,都说需要在manifest.mf中加上依赖项的引用关系,但是修改来修改去,依旧未能解决这个问题,都开始怀疑人生了…
可是就在这个时候有一篇文章大致意思是这样说的:
1.不要将依赖项和代码打包到一起
2.向打包好的jar中的manifest.mf文件,增加如下代码,并在 MANIFEST.MF 文件的最后敲两个空行:
Class-Path: libs/A.jar libs/B.jar
3.jar同级目录创建一个libs的目录,并将依赖项放到里面,也是 Class-Path 中 libs 的来源
4.再执行如下代码就OK了
java -jar xxx.jar