java – 如何运行springboot jar中打包的主类

我的项目使用
springboot,将其打包到jar文件后,我可以执行
java -jar my-project.jar来运行实例.

我还有一个脚本,它是一个主类,当我执行java -cp my-project.jar com.test.MyScript时,它说无法找到或加载主类.

怎么会发生这种情况?顺便说一句,当我执行java -cp my-project.jar com.test.MyApplication时,会发生同样的错误. MyApplication是SpringBootApplication类.

为什么我不能手动运行主类?

最佳答案 这是因为spring boot不使用SpringBootApplication作为主要入口点.它使用org.springframework.boot.loader.Launcher.

摘自spring docs

The org.springframework.boot.loader.Launcher class is a special
bootstrap class that is used as an executable jar’s main entry point.
It is the actual Main-Class in your jar file, and it is used to setup
an appropriate URLClassLoader and ultimately call your main() method.

点赞