You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu18.04下运行schemagen生成XML Schema时报SEVERE: null错误如何解决

问题根因

你遇到的类转换异常是系统apt安装的schemagen 2.3.0.1版本和OpenJDK 11内置的javac模块版本不兼容导致的,Java 11起JAXB相关组件从JDK核心模块中移除,系统源中的旧版schemagen没有适配JDK 11的模块机制,所以解析JAXB注解时会抛出错误。

可行解决方案
  • 方案1:切换到OpenJDK 8运行schemagen
    Java 8原生内置兼容的JAXB和schemagen工具,无需额外调整依赖,操作步骤:

    1. 执行命令安装OpenJDK 8:sudo apt install openjdk-8-jdk
    2. 切换当前环境的Java和javac版本:
      sudo update-alternatives --config java
      sudo update-alternatives --config javac
      
      在弹出的选项中选择OpenJDK 8对应的编号即可
    3. 重新执行schemagen Moon.java即可正常生成schema,操作完成后可通过上述同样命令切回Java 11环境
  • 方案2:使用适配JDK 11的高版本JAXB schemagen
    不用系统apt安装的schemagen,手动下载高版本JAXB发行包:

    1. 下载JAXB 2.3.3及以上版本的二进制发行包
    2. 解压后将发行包的bin目录加入当前终端PATH,或直接使用绝对路径调用bin下的schemagen
    3. 执行命令时指定jaxb相关依赖的classpath:schemagen -cp /path/to/jaxb/lib/* Moon.java
  • 方案3:通过构建工具插件生成schema
    如果是Maven/Gradle管理的项目,直接使用官方jaxb插件生成schema,插件会自动处理版本兼容问题,无需调整本地环境配置。比如Maven可使用jaxb2-maven-plugin,配置待处理的类后执行插件的schemagen目标即可。

内容的提问来源于stack exchange,提问作者yihijes925

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 06:27:02