目录
生成jar文件
方式一:打包成一个总的jar文件
方式二:打包的jar文件和第三方jar文件分开
生成jar文件
打开“文件->项目结构-构建”
点击“+”选择“jar->from modules ....”
弹出“从模块创建 jar”
方式一:打包成一个总的jar文件
选择“Main Class”,此处选择程序入口的class(就是带有main方法的class)
下面的“JAR files from libraries”选择“extract to the target JAR”,然后确定,确定后会自动生成“META-INF/MANIFEST.MF”(如果该文件已存在是无法确定的,需要先删除该文件),你可以打开看看这个文件,里面有配置mainclass的类名
解释一下这2个选择的含义:
extract to the target JAR:该选项是将项目中引用的所有第三方jar都打包到最终的jar中,最终只生成一个jar文件;
copy to the output directory and link via manifest:该选项打包时,所有第三方jar包不会打包到最终的jar中,而是将第三方jar包都复制到最终jar包文件所在的文件夹中
正常情况,这个时候就可以导出我们的jar包了(构建->编译Artifacts)。
编译后,生成了总的jar包(里面包含了第三方jar包的class文件),此时需要检查一下jar包里面“META-INF/MANIFEST.MF”文件,用文本编辑器打开这个文件,看看里面的是否有:
Manifest-Version: 1.0
Main-Class: {项目的 main class}
如果缺少了“Main-Class”这个配置,则说明该文件被第三方jar生成的同名文件给覆盖了,此时你有2中解决方案:
- 方法一:编辑上面的“MANIFEST.MF”,然后将“Main-Class”配置补充进去(最好复制上面生成的文件的代码,避免格式不对),然后将修改后的“MANIFEST.MF”覆盖jar中的文件即可;
- 方法二:在上面的图中,在根目录下创建“META-INF”文件夹,然后手动添加“MANIFEST.MF”文件,然后调整点击“上下”2个按钮来调整顺序(如果上下按钮不可用,则点一下上下按钮左边的那个排序按钮,关闭自动排序),将其调整到所有第三方jar的上面;
方式二:打包的jar文件和第三方jar文件分开
***待完善***