Windows/JDK11环境添加spring-boot-starter-data-cassandra依赖遇error=206
CreateProcess error=206(文件名或扩展名太长)原因及解决办法
问题原因
- Windows系统对命令行参数长度有默认限制(最多8191字符)。你添加的
spring-boot-starter-data-cassandra依赖会引入大量嵌套依赖,导致Maven执行spring-boot:run时,需要把所有依赖Jar的完整路径拼接成类路径参数,总长度直接超过了Windows的上限,触发了这个报错。 - 之前项目依赖较少,类路径总长度未超标,新增Cassandra starter后依赖数量剧增,直接突破了限制。
解决办法
1. 配置Spring Boot Maven插件使用Jar类加载器
在项目的pom.xml中添加以下插件配置,让插件生成一个临时Jar来管理依赖路径,避免命令行参数过长:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!-- 替换成你的主类全限定名,比如com.example.demo.DemoApplication --> <useMainClass>你的主类全路径</useMainClass> <useJarClassLoader>true</useJarClassLoader> </configuration> </plugin> </plugins> </build>
2. 打包成可执行Jar后启动
先执行mvn clean package将项目打包成可执行Jar,然后用java -jar target/你的项目Jar包名.jar命令启动,这种方式完全绕开了命令行参数长度限制。
3. 缩短Maven本地仓库路径
把默认的Maven仓库路径(比如C:\Users\XXX\.m2\repository)改成更短的路径(例如D:\mvn-repo),减少每个依赖Jar的路径长度,从而降低类路径的总长度。
内容的提问来源于stack exchange,提问作者JGleason
相关产品推荐
相关产品推荐

