Idea打包jar包的多种方式(解决MANIFEST.MF被覆盖的问题)

目录

生成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文件分开

***待完善***

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值