小编min*_*oim的帖子

找不到org.springframework.boot.loader.JarLauncher,但是org.springframework.boot.loader.launch.JarLauncher可以

尝试在分层 Docker 中部署Spring Boot 3.2应用程序时,我基本上遵循了这篇博文,具体来说,我的 Docker 入口点是:

ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"]
Run Code Online (Sandbox Code Playgroud)

然而 docker 没有启动并显示通常的内容

Error: Could not find or load main class org.springframework.boot.loader.JarLauncher
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.loader.JarLauncher
Run Code Online (Sandbox Code Playgroud)

在对初始 jar 文件进行一番挖掘后,我发现 JarLauncher 类实际上位于org.springframework.boot.loader.launch.JarLauncher.

如果我用这个替换入口点:

ENTRYPOINT ["java", "org.springframework.boot.loader.launch.JarLauncher"]
Run Code Online (Sandbox Code Playgroud)

该应用程序实际上启动了。

跳回到Spring 文档中,包应该仍然是org.springframework.boot.loader.JarLauncher(根据文档,我的意思是)

那么... JarLauncher 类是否已被移动,并且文档已过时,或者是我的配置中存在错误?因为我找不到任何有关此更改的文档(女巫似乎相当重要)

当然,java -jar由于清单文件没问题,通常的命令可以正确运行。

我通过使用 Spring Boot 2.7 启动一个新项目进行了双重检查,JarLauncher 类确实在包org.springframework.boot.loader

java spring spring-boot

13
推荐指数
1
解决办法
4608
查看次数

标签 统计

java ×1

spring ×1

spring-boot ×1