Spring Boot 在命令行指定主类启动程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot 在命令行指定主类启动程序相关的知识,希望对你有一定的参考价值。

参考技术A Spring Boot 程序我们一般会设置使用 spring-boot-maven-plugin 来生成 jar 包,配置类似于:

这样我们可以通过 -jar 的方式直接启动并执行指定的 start-class 类的 main 函数:

但当我们需要指定并执行其他类的 main 函数时,使用 -cp 参数却行不通:

因为 Spring Boot 打包时做了处理,启动时的主类也不再是用户指定的,而是由 Spring Boot 启动后代为调用执行。

此时我们就需要一些 trick 来解决这个问题。

首先我们要改变 spring-boot-maven-plugin 的参数:

增加了 <layout>ZIP</layout> 一行。这将使 Spring Boot 使用 PropertiesLauncher 。

然后

可以看到,事实上是以 org.springframework.boot.loader.PropertiesLauncher 作为主类启动的,设置了 loader.main 的值,由 Spring Boot 调用执行。

参考文章:

以上是关于Spring Boot 在命令行指定主类启动程序的主要内容,如果未能解决你的问题,请参考以下文章

spring boot错误: 找不到或无法加载主类

idea启动spring boot无法加载或找不到主类

在 pom.xml 中为 Kotlin 中的 Spring Boot 项目指定 Main 类

Spring Boot配置文件放在jar外部

Spring Boot配置文件放在jar外部

如何通过命令行启动 spring-boot 应用程序?