当我在 pom 文件中使用 jvmarguments 时,出现标题错误。我使用 mvnw 命令和以下插件来启用调试。如果我删除 jvm 参数,它就可以工作。但我想用 mvnw 命令启用远程调试
代码片段:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>${start-class}</mainClass>
<executable>true</executable>
<fork>true</fork>
<jvmArguments>-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005</jvmArguments>
</configuration>
</plugin>
错误:
*[错误] 未能执行目标 org.springframework.boot:spring-boot-maven-plugin:2.0.7.RELEASE:运行 (default-cli)在项目 dxcgateway 上:无法执行 java:无法运行 程序“C:\Program Files\Java\jdk1.8.0_202\jre in\java.exe”: CreateProcess error=206,文件名或扩展名太长 -> [帮助1] org.apache.maven.lifecycle.LifecycleExecutionException: 未能执行目标 org.springframework.boot:spring-boot-maven-plugin:2.0.7.RELEASE:运行 (default-cli)在项目 dxcg ateway 上:无法执行 java
原因:java.io.IOException:无法运行程序“C:\Program Files\Java\jdk1.8.0_202\jre in\java.exe”:CreateProcess 错误=206, 文件名或扩展名太长 在 java.lang.ProcessBuilder.start (ProcessBuilder.java:1048) 在 org.springframework.boot.loader.tools.RunProcess.run (RunProcess.java:77)
原因:java.io.IOException:无法运行程序“C:\Program Files\Java\jdk1.8.0_202\jre in\java.exe”:CreateProcess 错误=206, 文件名或扩展名太长 在 java.lang.ProcessBuilder.start (ProcessBuilder.java:1048) 在 org.springframework.boot.loader.tools.RunProcess.run (RunProcess.java:77)*
对我来说,我有类似的异常,下面的更改解决了问题
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>false</fork>
</configuration>
</plugin>
改变
<fork>true</fork>
到
<fork>false</fork>
这是由 Windows 操作系统限制引起的。解决方法:
.m2
存储库移至 c:\
settings.xml
打开%MAVEN_HOME%/conf
并查找\<settings>.\<localRepository>
(如果已注释掉则取消注释)并将其值更改为c:/.m2/repository
基于 Developer404 的 答案,无需移动 .m2 存储库,只需将其 安装到驱动器即可。这样命令行会更短并且可能会在限制范围内。 (不是理想的解决方案,但它可以与 Spring Boot 3 配合使用)
subst M: C:\Users\Javier\.m2\repository
mvn -Dmaven.repo.local=M:\ spring-boot:run