news 2026/10/13 10:23:14

SpringBoot打包可执行jar包启动方式:JarLauncher、PropertiesLauncher

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SpringBoot打包可执行jar包启动方式:JarLauncher、PropertiesLauncher

文章目录

  • 1, 项目结构
  • 2, 默认打包可执行jar启动主类:JarLauncher
  • 3, 打包可执行jar启动主类:PropertiesLauncher

1, 项目结构

springboot-tar-demo/ ├── src/ │ ├── main/ │ │ ├── assembly/ │ │ │ └── assembly.xml # 上述tar结构定义文件 │ │ ├── java/ │ │ │ └── com/my/test/ │ │ │ └── Application.java # 业务主类(含main方法) │ │ └── resources/ │ │ └── application.yml # 配置文件 │ └── test/ └── pom.xml

2, 默认打包可执行jar启动主类:JarLauncher

# 1,maven打包配置:<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.7.14</version><!-- 适配你的Spring Boot版本 --><configuration><archive><manifest><!-- 可选:默认就是JarLauncher,无需手动配 --><mainClass>org.springframework.boot.loader.JarLauncher</mainClass><!-- 关键:添加Class-Path条目 --><addClasspath>true</addClasspath><!-- 指定Class-Path中依赖的前缀 --><classpathPrefix>lib/</classpathPrefix></manifest><manifestEntries><!-- 指定业务主类 --><Start-Class>com.my.test.Application</Start-Class><!-- Created-By会由Maven Archiver自动生成,无需手动配 --></manifestEntries></archive></configuration><executions><execution><goals><goal>repackage</goal><!-- 关键:打包为Spring Boot可执行JAR --></goals></execution></executions></plugin></plugins></build>
# 2,打包后的目录结构[root@host-t1 xx]# ls -Fconfig/ lib/ logs/ xx.jar start.sh*# 3,查看可执行jar包[root@host-t1 xx]# vim xx.jarMETA-INF/MANIFEST.MF:Manifest-Version:1.0Implementation-Title: test-Application Implementation-Version:1.2.3 Class-Path: lib/config-generator-5.6.8.jar lib/jline-3.3.0.jar lib/jac kson-databind-2.10.5.1.jar lib/jackson-annotations-2.10.5.jar lib/ja... r lib/gsjdbc4.jar Build-Jdk-Spec:1.8Created-By: Maven Archiver3.4.0 Main-Class: com.my.test.Application# 4,启动方式-不灵活:[root@host-t1 xx2]# java -jar xx.jar

3, 打包可执行jar启动主类:PropertiesLauncher

# 1,maven打包配置:<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.7.14</version><configuration><archive><manifest><!-- 指定启动器为PropertiesLauncher --><mainClass>org.springframework.boot.loader.PropertiesLauncher</mainClass></manifest><!-- 可选:配置默认的外部classpath和业务主类 --><manifestEntries><Start-Class>com.my.test.Application</Start-Class><Spring-Boot-Classpath>lib/</Spring-Boot-Classpath></manifestEntries></archive></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>
# 2,打包后的目录结构[root@host-t1 xx2]# ls -Fconfig/ lib/ start.sh* xx2.jar# 3,查看可执行jar包[root@host-t1 xx2]# vim xx2.jarMETA-INF/MANIFEST.MF: Manifest-Version:1.0# 可选:指定默认加载的外部classpath(同级lib目录,支持通配符)#Spring-Boot-Classpath: lib/# “类路径索引文件”,提前记录所有依赖的位置(可以记录一个或多个jar路径),启动时直接读取索引,无需遍历#Spring-Boot-Classpath-Index: BOOT-INF/classpath.idxImplementation-Title: boot Implementation-Version:1.2#内部的业务类(编译后的 .class 文件)、配置文件、静态资源存放路径,默认BOOT-INF/classes/Spring-Boot-Classes: BOOT-INF/classes/#内部 依赖库的存放路径(默认是 BOOT-INF/lib/)Spring-Boot-Lib: BOOT-INF/lib/ Build-Jdk-Spec:1.8Spring-Boot-Version:2.7.14 Created-By: Maven JAR Plugin3.2.2#PropertiesLauncher是 Spring Boot 内置的三种启动器之一(另外两种是 JarLauncher(默认)、WarLauncher)#核心优势是支持高度灵活的外部化配置:#无需自定义类加载器,就能动态加载外部目录(如同级 lib)的所有 JAR 包;#支持运行时指定 classpath、配置文件路径、主类等Main-Class: org.springframework.boot.loader.PropertiesLauncher#指定你的业务主类(也可运行时指定)Start-Class: com.my.test.Application# 4,启动方式-灵活:[root@host-t1 xx2]#java -Dloader.path=lib/,ext-lib/ -jar xx2.jar java -Dloader.main=com.example.AnotherApp -jar xx2.jar
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/13 1:36:57

分析系统日志定位电脑故障方法

分析系统日志定位电脑故障方法 导航 文章目录分析系统日志定位电脑故障方法导航一、 访问日志文件二、 核心分析步骤&#xff08;快速定位故障&#xff09;1. 筛选关键事件级别2. 聚焦故障时间范围3. 识别关键事件来源和ID4. 解读事件详情5. 关联分析事件链三、 针对常见故障的…

作者头像 李华
网站建设 2026/10/12 22:40:14

Vue day13

1.create-vue1.1创建项目1.2项目目录和关键项目2.setup3.reactive&#xff08;&#xff09;4.ref&#xff08;&#xff09;5.computed计算属性函数6.基础使用-侦听多个数据7.Vue3的生命周期API8.组合式API下的父传子和子传父9.模块引用10.defineExpose&#xff08;&#xff09;…

作者头像 李华
网站建设 2026/10/8 14:10:53

为什么你的元宇宙地产滞销?开发者定位盲区

一、血淋淋的市场崩塌&#xff1a;测试缺失引发的灾难链 2023年&#xff0c;林俊杰在Decentraland平台斥资12.3万美元购置的虚拟地产市值暴跌91%&#xff0c;仅余1万美元价值&#xff1b;同期全球最大元宇宙地产平台成交价中位数从45美元跌至5美元。这场崩盘表面是投机泡沫破裂…

作者头像 李华
网站建设 2026/10/9 0:06:27

2026年深海声呐AI开发指南:软件测试从业者的专业视角

一、引言&#xff1a;深海声呐AI的机遇与测试挑战 2026年&#xff0c;深海声呐AI技术迎来爆发式增长&#xff0c;成为海洋经济的关键杠杆&#xff0c;预计市场规模将增长500%以上。作为软件测试从业者&#xff0c;我们面临独特挑战&#xff1a;多源异构数据融合、极端环境仿真…

作者头像 李华
网站建设 2026/10/9 17:25:33

【开题答辩全过程】以 基于java的物流管理平台为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人&#xff0c;语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

作者头像 李华