首先介绍一下IntelliJ IDEA生成jar包的方式:
1、打开项目,打开FIile->Project Structure...菜单.如下图:
选中Artifacts,点+号,选择JAR,再选择From modules with dependencies...,如下图:
在打开的界面中选择Main class:如下图示,会自动搜索到main class位置,选中确定即可。
JAR files from libraries有两个选项,extract to the target JAR和copy to the output directory and link via manifest,
extract to the target JAR:将第三方jar包打包到目标中,只生成一个jar包
copy to the output directoru and link via manfes:将第三方包copy的目标jar包目录,有多个jar包
我们首先选择第二项,如下图:
关于Directory for META-INF/MANIFEST.MF默认,不需要修改(网上有很多说要改的),点OK完成配置。
如果不改jar包名, 可以直接点OK完成。
接下来就是生成jar包,打开菜单Build->Build Artifacts...->Build,如下图:
生成结果如下:
运行Cknife-master.jar,成功:
我想大部分人不想这样有多个jar包,会选择生成一个包。我们接着做一下,重新打开FIile->Project Structure...菜单,将上一次的配置删除,点 - 号如图,重新添加:
这次选择extract to the target JAR,如下图:
如果出现以下错误,直接将src/META-INF/MANIFEST.MF文件删除,关闭Project Structure(不关闭还是报错,可能是bug)重新添加即可。
配置完成后,再次打开菜单Build->Build Artifacts...->Build,生成jar包如下图:
到此,似乎一切正常,来运行一下。
无法正常运行,这个错误在网上搜索,有说是java或javac版本问题,有说是MANIFEST.MF位置不对,其实解决办法很简单,将第三方jar包META-INF中的认证文件删除即可。如下图:
重新build后运行一切正常。