SpringBoot打包可执行jar包启动方式:JarLauncher、PropertiesLauncher
文章目录1, 项目结构2, 默认打包可执行jar启动主类JarLauncher3, 打包可执行jar启动主类PropertiesLauncher1, 项目结构springboot-tar-demo/ ├── src/ │ ├── main/ │ │ ├── assembly/ │ │ │ └── assembly.xml # 上述tar结构定义文件 │ │ ├── java/ │ │ │ └── com/my/test/ │ │ │ └── Application.java # 业务主类含main方法 │ │ └── resources/ │ │ └── application.yml # 配置文件 │ └── test/ └── pom.xml2, 默认打包可执行jar启动主类JarLauncher# 1maven打包配置buildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdversion2.7.14/version!-- 适配你的Spring Boot版本 --configurationarchivemanifest!-- 可选默认就是JarLauncher无需手动配 --mainClassorg.springframework.boot.loader.JarLauncher/mainClass!-- 关键添加Class-Path条目 --addClasspathtrue/addClasspath!-- 指定Class-Path中依赖的前缀 --classpathPrefixlib//classpathPrefix/manifestmanifestEntries!-- 指定业务主类 --Start-Classcom.my.test.Application/Start-Class!-- Created-By会由Maven Archiver自动生成无需手动配 --/manifestEntries/archive/configurationexecutionsexecutiongoalsgoalrepackage/goal!-- 关键打包为Spring Boot可执行JAR --/goals/execution/executions/plugin/plugins/build# 2打包后的目录结构[roothost-t1 xx]# ls -Fconfig/ lib/ logs/ xx.jar start.sh*# 3查看可执行jar包[roothost-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启动方式-不灵活[roothost-t1 xx2]# java -jar xx.jar3, 打包可执行jar启动主类PropertiesLauncher# 1maven打包配置buildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdversion2.7.14/versionconfigurationarchivemanifest!-- 指定启动器为PropertiesLauncher --mainClassorg.springframework.boot.loader.PropertiesLauncher/mainClass/manifest!-- 可选配置默认的外部classpath和业务主类 --manifestEntriesStart-Classcom.my.test.Application/Start-ClassSpring-Boot-Classpathlib//Spring-Boot-Classpath/manifestEntries/archive/configurationexecutionsexecutiongoalsgoalrepackage/goal/goals/execution/executions/plugin/plugins/build# 2打包后的目录结构[roothost-t1 xx2]# ls -Fconfig/ lib/ start.sh* xx2.jar# 3查看可执行jar包[roothost-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启动方式-灵活[roothost-t1 xx2]#java -Dloader.pathlib/,ext-lib/ -jar xx2.jar java -Dloader.maincom.example.AnotherApp -jar xx2.jar

相关新闻

python 之 Langchain GenAI 聊天模型集成

python 之 Langchain GenAI 聊天模型集成

一、环境准备与初始化 1.1 Gemini开发者API方式from langchain_google_genai import ChatGoogleGenerativeAI# 推荐做法:提前在环境变量中设置API Key # export GOOGLE_API_KEY你的API密钥# 直接代码中指定API Key也可以 model ChatGoogleGenerativeAI(model"…

2026/7/6 19:58:30 阅读更多 →
开放计算项目与IOWN合作设计分布式数据中心

开放计算项目与IOWN合作设计分布式数据中心

开放计算项目(OCP)希望开发分布式数据中心规范,并决定采用全光网络创新光学与无线网络(IOWN)技术栈来实现这一目标。OCP将这项新计划称为"AI计算连续体",希望提供"从集中式到边缘部署的无缝…

2026/7/6 6:37:23 阅读更多 →
欧盟与印度自贸协定开启IT服务新时代

欧盟与印度自贸协定开启IT服务新时代

欧盟与印度达成的首个自由贸易协定可能推动印度IT服务提供商在欧洲大陆扩展业务,为其打开大量未开发的市场机遇。虽然北欧和比荷卢地区等较小经济体集群已经成为印度IT服务公司的成功市场,但在一些更大的经济体中,这些公司仍有巨大的增长空间…

2026/7/4 2:21:39 阅读更多 →

最新新闻

如何让Windows开始菜单回归经典:Open-Shell-Menu完整配置与个性化终极指南

如何让Windows开始菜单回归经典:Open-Shell-Menu完整配置与个性化终极指南

如何让Windows开始菜单回归经典:Open-Shell-Menu完整配置与个性化终极指南 【免费下载链接】Open-Shell-Menu Classic Shell Reborn. 项目地址: https://gitcode.com/gh_mirrors/op/Open-Shell-Menu 想要找回经典的Windows开始菜单体验吗?Open-Sh…

2026/7/6 19:57:18 阅读更多 →
社会洗牌的变化创造了过去不存在的可能性。

社会洗牌的变化创造了过去不存在的可能性。

它揭示的是社会系统如何运行,而不是一句励志口号。“社会洗牌的变化创造了过去不存在的可能性。”很多人容易理解成:变化一定带来机会。其实,这种理解并不准确。 更准确地说应该是:变化会改变"可能性空间"(P…

2026/7/6 19:57:18 阅读更多 →
如何从零开始为syzkaller内核模糊测试工具做贡献:新手完全指南

如何从零开始为syzkaller内核模糊测试工具做贡献:新手完全指南

如何从零开始为syzkaller内核模糊测试工具做贡献:新手完全指南 【免费下载链接】syzkaller syzkaller is an unsupervised coverage-guided kernel fuzzer 项目地址: https://gitcode.com/gh_mirrors/sy/syzkaller 你是否曾经想为开源内核安全项目做贡献&…

2026/7/6 19:55:17 阅读更多 →
EhViewer开源项目深度解析:构建现代化漫画浏览体验的Android解决方案

EhViewer开源项目深度解析:构建现代化漫画浏览体验的Android解决方案

EhViewer开源项目深度解析:构建现代化漫画浏览体验的Android解决方案 EhViewer是一个基于Material Design 2设计语言的开源Android漫画浏览应用,为E-Hentai平台用户提供了优雅、高效的内容浏览体验。这个项目不仅解决了漫画爱好者在移动设备上访问和浏览…

2026/7/6 19:55:17 阅读更多 →
FancySelect与iOS设备兼容性:智能适配与强制覆盖技巧

FancySelect与iOS设备兼容性:智能适配与强制覆盖技巧

FancySelect与iOS设备兼容性:智能适配与强制覆盖技巧 【免费下载链接】FancySelect A better select for discerning web developers everywhere. 项目地址: https://gitcode.com/gh_mirrors/fa/FancySelect FancySelect是一个为挑剔的Web开发者精心打造的选…

2026/7/6 19:53:14 阅读更多 →
为什么DocuSeal能让文档签署从繁琐到极简?3分钟了解开源电子签名的未来

为什么DocuSeal能让文档签署从繁琐到极简?3分钟了解开源电子签名的未来

为什么DocuSeal能让文档签署从繁琐到极简?3分钟了解开源电子签名的未来 【免费下载链接】docuseal Open source DocuSign alternative. Create, fill, and sign digital documents ✍️ 项目地址: https://gitcode.com/GitHub_Trending/do/docuseal 想象一下…

2026/7/6 19:53:14 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻