idea中如何把springBoot项目打包成jar,并在命令行窗口运行和访问

1 jar的组织结构

通常情况下一个jar会有如下的结构:

META-INF目录下的MANIFEST.MF的文件是用来存放版本信息、启动类路径与依赖其他jar的名称,一份可运行通过链接来引入其他jar的目标jar的MANIFEST.MF文件格式如下:

其中Manifest-Version 是版本信息;Class-Path 是通过清单链接到生成的目标jar的jar列表,多个jar会以空格分开,如果生成的jar没有依赖其他的jar则没有此项;Main-Class 启动类的路径和名称,如果该生成的jar需要用Java -jar命令启动就必须要此项,否则不需要。

如下两种分别是把依赖jar提取到目标jar和无启动类的MANIFEST.MF:

2 idea生成jar的步骤

 

idea把项目生成jar包会相对比较容易,按如下步骤操作即可:

进入项目架构project structure 并点击artifacts栏目,并在该栏目下选择JAR,与JAR下的from modules with dependencies

From modules with dependencies 是可供选择的一个东西,是否将项目依赖的其他jar打包到将要生成的新jar,如下图

Main Class 主函数,定义jar文件的入口类,该类必须是一个可执行的类,一旦定义了该属性即可通过 java -jar x.jar来运行该jar文件; extract to the target jar 解释为提取到目标jar中,是默认选项,也就是假如生成目标jar的项目有依赖其他jar则会把这些依赖提取到目标jar中; copy to the output directory and link via manifest 解释为复制到输出目录并通过清单链接,假如生成目标jar的项目有依赖其他jar会通过链接的方式来依赖,不会直接提取,此处推荐使用默认选项,直接通过提取的方式引入目标jar假如依赖资源多的话很可能会出现资源冲突问题,java -jar运行时报错不好修复,因为开发时是采用链接依赖的,生成目标jar通过清单链接的方式更完善; Directory for META-INF/MANIFEST.MF选择生成版本等信息的文件路径,生成jar后该路径下的manifest.mf文件内容会跟目标jar里面的manifest.mf文件内容一模一样,路径可以任意选择,此处的作用可能就是为了方便操作过程中查看实时manifest.mf里面的内容,其他无明显用途。选择完点击ok,在idea顶部Build菜单中选中jar进行Build就好,如下图

Build后会项目根目录的out目录中存放新生成的jar(通过链接方式引入其他依赖jar为例),如下图:

如下两图是通过提取方式引入其他依赖jar和通过链接方式引入其他依赖jar的输出目录对比:(通过链接方式生成的其他jar都是依赖的jar,运行basetest目标jar很方便链接,跟开发时场景一样)

如下两图是通过提取方式引入其他依赖jar和通过链接方式引入其他依赖jar生成目标jar格式的对比:(通过提取的方式感觉内容繁杂的多,它把所有依赖jar的信息都汇总在一起了,通过链接的方式就跟开发时的目录一样)

3 在命令行窗口运行目标jar的方法

cmd进入目标jar的目录,然后采取命令运行即可,java -jar xxx.jar  如:

注意事项:假如通过链接方式生成的目标jar需要拷贝到其他目录跑,一定需要把其他依赖jar资源一起拷贝过去,不然会跑步起来

4 在浏览器访问目标jar控制器的方法

访问方式跟开发工具开发时一样,如下是控制器方法和浏览器的访问方式示例(springBoot设置的端口号为8080):

--------------------- 
作者:higherzjm 
来源:CSDN 
原文:https://blog.csdn.net/higherzjm/article/details/91295190 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值