利用IDEA生成可运行的JAR文件
使用jar生成JAR比较繁琐且容易出错,IDEA已经为我们提供了相应的功能,让我们来学习一下吧
【右键点击项目】-> 【Open Module Settings】
【Artifacts】 -> 【JAR】 -> 【From modules with dependences】
会出现如下对话框
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
文件
比如我填写了如下配制:
会在src/main/resources/
目录下生成META-INF/MANIFEST.MF
如果项目有依赖库的话,会提取相应依赖库的字节码文件至目标的JAR文件下,我们查看生成的JAR包下的文件,不光有我们自己编写的字节码文件,也会有依赖库的字节码文件,这里我们的项目添加了common-lang3
的依赖,则JAR的文件里也包含了common-lang3
的字节码文件。
运行生成的JAR文件
使用copy to the output directory and link via manifest
生成的MANIFEST.MF
会包含Class-Path
属性,且会拷贝相应的依赖包到输出的目录如下图:
我们在次执行生成的jar包,也是可以正常运行的。
出现”META-INF/MANIFEST.MF” already exists in VFS的错误
如下图所示:
说明”META-INF/MANIFEST.MF”已经在文件系统中存在了,我们把对应的文件删除即可,在重新配制即可成功。
编辑整理丨赵伟纬