可执行jar黑科技解剖

一、常规服务启动方式

在java领域需要启动一个服务主要有三种方式
1)单独运行servlet 容器,如Tomcat,Jboss 等
2)war包中自带Jetty容器,通过java 命令运行
3)通过Maven打一个可执行的jar执行运行
这三种运行服务的方式都需要jdk环境支持,今天主要来研究一下 通过Maven打一个可执行的jar运行服务。

二、只执行jar的运行原理

在Maven的pom文件中加入插件,在运行打包指令的时候会将相应的启动文件,依赖的jar全部打包在一个jar包中,并在jar文件head 部分加入相关执行命令,我们在运行jar时,首先执行的是相关命令, 在相关命令中会去铜鼓java命令的方式运行内容容器。
本实验环境:jdk1.8,Maven、SpringBoot 2.1.3
1)pom 加入插件

<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<executable>true</executable>
				</configuration>
			</plugin>
		</plugins>
	</build>

2)运行Maven命令打jar包

mvn clean package

打包结果:
在这里插入图片描述
3)在系统中直接运行
在这里插入图片描述
4)验证运行结果
在这里插入图片描述
上图表示jar已经正常运行。
5)可以执行jar内容
在这里插入图片描述
BOOT-INF 文件夹中包括 运行需要的依赖jar、class文件
在这里插入图片描述
META-INF 包括可jar运行的参数
在这里插入图片描述
org 文件夹包括启动的相关JarLuncher
在这里插入图片描述
6)可运行jar的黑科技
在文件的头有一些可执行的指令,通过这些指令完成了springboot内置容器的启动
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值