使用idea生成可执行jar

最近在给公司做一个小工具,最终是要打成可执行的jar交付。因为之前没做过相关的东西,所以在实际操作过程中呢也是遇到了很多的问题。当然对于一个长期面向百度编程的小菜鸡来说,发现百度上很多错误并没有相应的一些解决说明,在这里呢,打算通过这篇文章将整个过程以及遇到的问题的解决方法做个一个详细的说明,大家一起交流下。

当然对于可执行的jar,main方法是必须的,基于我的工程目录,代码如下
在这里插入图片描述

详细步骤如下:

1,选中项目,右键file,选中Project Struture
在这里插入图片描述
2,选中Artifacts,既然是打成jar文件,我们选择相应的JAR即可,然后是基于我们本地的工程,选下面的 from modules with dependencies… 如下图
在这里插入图片描述
3,选择入口方法,即我们的main方法所在的类
在这里插入图片描述
在这里插入图片描述
4,选择main方法主类后,会对应产生一个MANIFEST.MF文件的生成路径
备注:MANIFEST.MF文件会生成在META-INF文件夹下面,主要包含我们jar的很多相关一些属性信息,常见的有
Manifest-Version 用来定义manifest文件的版本,例如:Manifest-Version: 1.0
Main-Class 定义jar文件的入口类,该类必须是一个可执行的类,一旦定义了该属性即可通过 java -jar x.jar来运行该jar文件
其他相关,详见百度,Google,bing等各大搜索引擎,说的都比我好

对于下面 jar files from libraries 我们勾选第一个将自己的项目打成一个jar即可
在这里插入图片描述
5,选址确认后,对生产基于当前项目的jar生成的相关配置,具体详细说明如下:
1),对于需要针对哪个jar去打包
2),打出的jar的名字,可以自己随便改成什么,比如:XXX
3),type就是你打出的文件类型,比如我们要打成jar文件
4),打出的jar的生成路径,可以选择你需要放置的任何位置
5),主程序入口,即我们前面选的那个main方法入口
在这里插入图片描述
6,上面的设置完成之后,便可以进行相应的一些打包操作了,具体如下截图
在这里插入图片描述
在这里插入图片描述
7,如图,可见我们的jar已经打出来了
在这里插入图片描述
8,然后我们cmd进去当前目录,执行java -jar version-publish.jar执行当前jar包(前提是配置jdk),如图可见,我们的jar已经可以正常执行了。
在这里插入图片描述

---------------------------------------------------------------> 前方高能 <---------------------------------------------------------------
常见问题:
1,jar包问题
我再前期打包的时候,会出现一个错误如下,大致是打poi-ooxml-3.8的时候出现io异常,然后查阅很多资料,发现一般这种情况是由于jar包冲突,或者jar文件损坏造成,于是我换成3.9的poi-ooxml的jar,问题顺利解决(备注:当然有知道其他原因的大兄弟们欢迎和我交流!)
在这里插入图片描述
2,打出jar后执行报没有主清单属性:
这个呢就是我们前面说的那个MANIFEST.MF文件了,里面没有Main-Class
在这里插入图片描述
我们打开对应的MANIFEST.MF文件,发下确实没有Main-Class配置,可将我们工程中的MANIFEST.MF文件中的
Main-Class配置对应copy过来即可:Main-Class: execute.ExportUntil (备注:至于为什么打包的时候配置会丢失?idea的bug?还是其他?我是真的不知道,欢迎知道的大兄弟和我交流一下!)
在这里插入图片描述

配置完成后发现我们jar包可以正常运行了,如上整个iead的jar包生成过程就算完成了!欢迎大兄弟们指正!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章