IDEA打包项目模块生成jar包

IDEA打包项目模块生成jar包

首先,一个完整的jar包至少需要包含两个部分:MANIFEST.MF(标明了主启动类等元数据)和你编写的class,如下图所示:
在这里插入图片描述
MANIFEST.MF包含在META-INF文件夹中,另外一个目录则是根据你的pakage生成的,里面包含了你写的所有类。下面逐步介绍IDEA打包jar的步骤:
1.idea中File → ProjectSetting;
在这里插入图片描述
2.切换到Artifacts页面,点击“+”号,选择JAR→From modules with dependencie…:
在这里插入图片描述
3.选择main class,然后选择copy to the output directory and link via manifest,点击ok;此时如果提示META-INF目录已存在,去把这个目录删了就好。
在这里插入图片描述
4.然后会出现下面这个界面。注意画圈的地方就是实际打包出来的东西的结构,可以看到会生成一个jar包,jar包里面包含一个‘dockerdemo’ compile output。这个‘dockerdemo’ compile output就是需要打包的‘dockdemo’模块的编译结果,也就是class文件的目录。结合我一开始说的一个jar包需要包含的东西,显然这个打包出来后是运行不了的,因为缺少META-INF文件夹目录。
在这里插入图片描述
5.出现这个情况的原因是idea没有自动把META-INF目录添加到输出中,于是需要手动添加一下。鼠标选中‘dockerdemo.jar’(这是我项目的名字)这一级,右键‘Create Directory’,目录名键入"META-INF",OK。会在输出的jar包里添加这个目录:
在这里插入图片描述
6.但是META-INF目录中还没有我们需要的MANIFEST.MF文件,右键META-INF目录,选择‘Add copy of’→directory content,选择第三步中“Directory for META-INF/MANIFEST.MF"栏中填写的目录(默认是src/main/java目录,maven结构的项目的话)下的META-INF目录。(因为其实通过第三步后,IDEA会在这个目录下生产META-INF目录,且在这个目录下生成正确的MANIFEST.MF文件,idea只是没有把这个目录添加到输出的jar包中,或许是我不会操作。我们要做的就是把这个目录添加到输出的jar包中)。
在这里插入图片描述
7.搞定后,我们的输出结构是这样的。(其实到这一步有很多种方式,但是不管怎么弄,一定要保证输出的jar包结构下至少包含META-INF目录和你的程序目录!!)
在这里插入图片描述
8.点击ok,回到idea主界面。点击Build→Build Artifacts…→选中你的模块→Build。等待输出结束了,可以在out目录中看到你的jar包。切换到jar包目录,运行 java -jar xxx.jar来运行你的程序把!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值