Spring Boot Thin Launcher Exec Jar无法定位问题求助
你遇到的这个启动错误,核心是Thin Jar启动器无法找到对应的可执行Jar文件,通常和快照版本依赖获取、Maven配置或者启动参数设置有关。我整理了几个可行的解决方案,你可以逐一尝试:
1. 切换为稳定版本的spring-boot-thin-layout
你当前使用的1.0.25.BUILD-SNAPSHOT是快照版本,这类版本可能存在仓库同步不稳定、依赖缺失的问题。建议换成最新的稳定版(比如1.1.0.RELEASE,可根据实际情况确认最新稳定版本),修改插件依赖配置:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <dependencies> <dependency> <groupId>org.springframework.boot.experimental</groupId> <artifactId>spring-boot-thin-layout</artifactId> <version>1.1.0.RELEASE</version> </dependency> </dependencies> </plugin>
修改后执行mvn clean package重新构建项目,再尝试启动Jar包。
2. 配置快照仓库(如果坚持使用快照版本)
快照版本不会发布到Maven中央仓库,需要在pom.xml或Maven的settings.xml中添加Spring快照仓库,确保Maven能拉取到对应依赖:
在pom.xml中添加以下配置:
<repositories> <repository> <id>spring-snapshots</id> <url>https://repo.spring.io/snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>spring-snapshots</id> <url>https://repo.spring.io/snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories>
添加后重新执行mvn clean package,确保Maven成功下载到快照版本的spring-boot-thin-launcher依赖。
3. 简化启动命令
你当前指定的-Dthin.root=.和-Dthin.archive=.参数可能导致依赖查找路径错误。尝试去掉这些参数,使用默认命令启动:
java -jar target/thin-jar-poc-0.0.1-SNAPSHOT.jar
默认情况下,Thin Jar会自动下载所需依赖到当前目录下的.thin文件夹,无需手动指定根目录和归档路径。
4. 检查本地Maven仓库的依赖是否存在
打开你的本地Maven仓库(默认路径为~/.m2/repository),检查是否存在路径org/springframework/boot/experimental/spring-boot-thin-launcher/1.0.25.BUILD-SNAPSHOT/,以及对应的spring-boot-thin-launcher-1.0.25.BUILD-SNAPSHOT-exec.jar文件。如果不存在,执行mvn dependency:resolve强制下载所有依赖。
如果以上步骤都尝试后仍未解决,建议查看Maven构建日志,确认spring-boot-thin-launcher是否被正确下载并纳入Thin Jar的依赖清单中。
内容的提问来源于stack exchange,提问作者Arpit




