我的项目使用springboot,将其打包到jar文件后,我可以执行java -jar my-project.jar
来运行实例。
我还有一个主要类的脚本,当我执行java -cp my-project.jar com.test.MyScript
时,它会显示Could not find or load main class
。
这怎么可能发生?顺便说一下,当我执行java -cp my-project.jar com.test.MyApplication
时,会发生同样的错误。 MyApplication
是SpringBootApplication
类。
为什么我不能手动运行主类?
答案 0 :(得分:1)
这是因为春季启动并没有使用SpringBootApplication
作为主要入口点。它使用org.springframework.boot.loader.Launcher
。
摘自spring docs:
org.springframework.boot.loader.Launcher类是一个特殊的类 bootstrap类,用作可执行jar的主要入口点。 它是jar文件中的实际Main-Class,用于设置 一个合适的URLClassLoader并最终调用你的main()方法。