如何生成可运行jar包

今天我们一起来聊一聊如何生成可运行jar包,什么是可运行jar包,他有什么特点呢?
这些问题我们都会在以下的内容中给大家一一解答,好了,我们开始这个内容的学习吧!

可运行jar包

首先我们来看看什么是可运行jar包,所谓可运行jar包就是可以直接通过以下命令执行的jar包文件:
java -jar xxx.jar
上述命令中,我们可以看到命令行中无需指定启动类,也无需指定依赖包,然后就可以自动的运行了,这样的jar包就是可运行jar包。

如果你熟悉Spring Boot自然知道Spring Boot打包出来的jar包就是一个可运行jar,但如果不使用Spring Boot你能自己创建一个可运行jar包吗?

普通jar

我们再来看看普通jar的情况,没有对比就没有伤害,我们只有知道了两者的区别,才能知道其本质。

如果你使用maven,选择目标为jar,不使用Spring Boot的情况下,当你通过mvn将其打包后是一个普通jar包,这个jar包是不能直接运行的?

你如果运行会发现如下错误:

xxx.jar中没有主清单属性

很明显我们需要通过某种方式告诉程序启动时要首先执行哪个类?也就是执行哪个类的main方法?

基于idea生成可运行jar

使用idea创建一个普通项目,不要求是maven项目,新建一个含main方法的类。
接下来就是使用idea自带的Artifacts功能生成可运行jar包的步骤:

  1. 打开项目设置视图,选择artifacts-->JAR --> from modules with dependencies...


    如何生成可运行jar包_第1张图片
    image-20200212225245733.png
  2. 设置jar包的主类为含有main方法的类,注意MANIFEST.MF的路径需要去掉默认的main\java,也就是放在src根目录下,否则会提示找不到清单文件


    如何生成可运行jar包_第2张图片
    image-20200212225833514.png
  3. 注意查看jar包的输出目录,最终生成的jar会在该路径下


    如何生成可运行jar包_第3张图片
    image-20200212225920525.png
  4. 选择build菜单,点击build artifacts子菜单


    如何生成可运行jar包_第4张图片
    image-20200212230034709.png
  5. 在弹出的菜单中选择要打包的artifacts


    如何生成可运行jar包_第5张图片
    image-20200212230108322.png

然后即可查看输出目录下生成的jar包,该jar包即为可运行jar。
通过命令运行之
java -jar regularjardemo.jar
就可以看到main方法正常执行了。

手动方式

其实仔细对比普通jar和可运行jar,你会发现这两个jar的区别就在于一个有MANIFEST.MF文件,一个没有,这个就是可运行jar的秘密。
只需要在jar文件中添加META-INF\MANIFEST.MF文件,这个MANIFEST.MF文件是一个properties文件,其中有一个Main-Class的字段,只需要将你要运行的主类的全类名写在此处就可以实现可运行jar了。

以上就是关于可运行jar包的知识了,如果你有什么问题或者疑问可以在评论区留言,我会及时为你解答!

你可能感兴趣的:(如何生成可运行jar包)