idea artifacts_[IDEA] 利用IDEA生成可运行的JAR文件

利用IDEA生成可运行的JAR文件

使用jar生成JAR比较繁琐且容易出错,IDEA已经为我们提供了相应的功能,让我们来学习一下吧

【右键点击项目】-> 【Open Module Settings】

b38940fef941fbcd21797a26d0413dc0.png

【Artifacts】 -> 【JAR】 -> 【From modules with dependences】

adde95fa7d3d68199db8b66a61149983.png

会出现如下对话框

512e5fbdf99570e488a4d49de79845d2.png

Main Class就是JAR文件的主类

JAR files from libraries中的

  • extract to the target JAR的意思是提取依赖库的字节码文件到目标的JAR文件中

  • copy to the output directory and link via manifest的意思是把依赖库拷贝到输出的目录,并在manifest中添加对应的属性

Directory for META-INF/MANIFEST.MF会在填写的目录下生成META-INF/MANIFEST.MF文件

比如我填写了如下配制:

02ec512592a83ef4792b6ba8fc3de322.png

会在src/main/resources/目录下生成META-INF/MANIFEST.MF

b23ca776d032eaa7cfaf81c2c7f9d351.png

如果项目有依赖库的话,会提取相应依赖库的字节码文件至目标的JAR文件下,我们查看生成的JAR包下的文件,不光有我们自己编写的字节码文件,也会有依赖库的字节码文件,这里我们的项目添加了common-lang3的依赖,则JAR的文件里也包含了common-lang3的字节码文件。

11e90c49320d5e5e29bd2f8fae0bc74e.png

运行生成的JAR文件

7440d0724065c61c6209adb32de0114c.png

使用copy to the output directory and link via manifest

5d60aa7358f3ebc4ba47c3be0b0e081f.png

生成的MANIFEST.MF会包含Class-Path属性,且会拷贝相应的依赖包到输出的目录如下图:

ef07903960965c3923b861f4b64eb327.png

我们在次执行生成的jar包,也是可以正常运行的。

cdee8df8eea37188511997ab002ee96c.png

出现”META-INF/MANIFEST.MF” already exists in VFS的错误

如下图所示:

f08bdc4efb016356d6343df711a2dba2.png

说明”META-INF/MANIFEST.MF”已经在文件系统中存在了,我们把对应的文件删除即可,在重新配制即可成功。

a473853a0caee594403c07a0201f1b18.png

编辑整理丨赵伟纬

868a77ce60f1b1a445b5b022d52d9845.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值