java 找不到org.springframework. Boot .loader.JarLauncher,但可以找到org.springframework. Boot .loader.launch.JarLauncher

hc8w905p  于 2023-10-14  发布在  Java
关注(0)|答案(1)|浏览(174)

尝试在分层Docker中部署Sping Boot 3.2应用程序时,我基本上遵循this blogpost,具体来说,我的Docker入口点是:

ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"]

然而,Docker不会启动并显示通常的

Error: Could not find or load main class org.springframework.boot.loader.JarLauncher
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.loader.JarLauncher

在对最初的jar文件进行了一些挖掘之后,我发现JarLauncher类实际上在org.springframework.boot.loader.launch.JarLauncher下。
如果我把入口点换成这个:

ENTRYPOINT ["java", "org.springframework.boot.loader.launch.JarLauncher"]

APP真的开始了。
跳回Spring文档,包应该仍然是org.springframework.boot.loader.JarLauncher(根据文档,我的意思是)
那么. JarLauncher类被移动了,文档已经过时了,还是我的配置中有错误?由于我找不到任何关于此更改的文档(女巫似乎相当重要)
当然,通常的java -jar命令可以正确运行,因为清单文件是正确的。
我通过使用Sping Boot 2.7启动一个新项目进行了仔细检查,JarLauncher类确实在org.springframework.boot.loader包中

lymgl2op

lymgl2op1#

您正在查看Spring 2.3的博客,并且正在使用非最终版Sping Boot 3.2。
类已经移动,请参阅this ticket,如果您查看正确的文档,则文档完全正确。您查看了当前的生产版本3.1,而不是3.2,因为它仍在开发中。
所以简而言之,博客文章(有点)过时了,只要你读了正确的文档,文档就完全有序。

相关问题