1. springboot jar 包默认指定 Main Class
springboot 打包出来的 jar 包,默认指定了 Main Class 为 org.springframework.boot.loader.launch.JarLauncher。spring 启动时会再行加载我们写的主类。解压 jar 包,查看 META-INF/MANIFEST.MF 可以验证
2. PropertiesLauncher
查阅文档,springboot 还支持其他的 Launcher,其中的 org.springframework.boot.loader.launch.PropertiesLauncher 支持其他配置参数,可以指定运行主类
PropertiesLauncher 还支持其他参数,以及不同的设置方式(通过 java -D、环境变量等),有需要可自行查阅。docs.spring.io/spring-boot…
3. 运行和测试
可以通过如下命令来运行指定主类
# 通过 PropertiesLauncher 依然可以启动原程序
java -cp build/libs/xx.jar \
org.springframework.boot.loader.launch.PropertiesLauncher
# 通过 PropertiesLauncher 运行指定主类
java -cp build/libs/xx.jar \
-Dloader.main=com.your.another.Main \
org.springframework.boot.loader.launch.PropertiesLauncher
# 追加参数
java -cp build/libs/xx.jar \
-Dloader.main=com.your.another.Main \
-Dloader.args="test1 test2 test3"
org.springframework.boot.loader.launch.PropertiesLauncher
# 要注意参数设置要在主类之前设置
测试结果