IntelliJ中Jakarta EE插件JAXB生成代码遇206错误求助
解决IntelliJ中JAXB插件生成Java类时的CreateProcess error=206错误
问题描述
在IntelliJ中通过菜单Tools > XML Actions > Generate Java Code from XML schema using JAXB(由Jakarta EE Webservices (JAX-WS)插件提供)从XSD生成JAXB类时,出现错误:
Cannot run program "C:\Java\tomcat9\jvm\oraclejdk-11.0.18.0.2\bin\java.exe": CreateProcess error=206, The filename or extension is too long
已尝试但无效的操作:
- 在
workspace.xml中添加dynamic.classpath = true - 在VM选项中添加
-Didea.dynamic.classpath=true - 将JVM和XSD文件移至C:/根目录
疑问:该插件是否有独立配置?如何解决此问题?
可行解决方案
1. 直接用jaxb-xjc命令行工具生成
绕过IntelliJ插件的执行逻辑,直接使用JAXB官方的命令行工具:
- 确认JDK/bin目录下存在
xjc.exe(JDK8及以前自带,JDK9+需单独下载Jakarta JAXB工具包) - 打开命令提示符,执行生成命令:
示例:xjc -d 输出目录路径 -p 目标包名 你的XSD文件路径xjc -d ./src/main/java -p com.example.model ./src/main/resources/schema/order.xsd
2. 配置插件的独立VM参数
Jakarta EE Webservices插件有独立的配置入口,可按以下步骤调整:
- 打开IntelliJ设置(快捷键:Windows/Linux按Ctrl+Alt+S,Mac按Cmd+,)
- 导航到
Build, Execution, Deployment > Build Tools > Maven > Runner(Maven项目),或Build, Execution, Deployment > Compiler > Java Compiler - 在
VM Options中添加-Didea.dynamic.classpath=true,同时可追加-Xmx512m提升内存 - 另外,在
Settings > Plugins > Installed找到Jakarta EE Webservices (JAX-WS)插件,点击Configure(若有),检查是否有专属的JAXB生成配置项,调整Java路径或类路径参数
3. 缩短项目根目录路径
项目路径层级过深会导致类路径拼接后超长,可将整个项目迁移到更简短的路径下,比如C:\proj\my-app,避免多层嵌套目录
4. 换用右键菜单的生成方式
右键点击目标XSD文件,选择Generate > JAXB Classes,这种生成逻辑可能不依赖插件的默认类路径配置,能绕过长度限制问题
内容的提问来源于stack exchange,提问作者Loïc Gammaitoni
相关产品推荐
相关产品推荐

