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

生成ExtJS 6.5 Web应用时遇javax/xml/bind/DatatypeConverter错误的解决方法

解决Java 9.0.4 + Sencha ExtJS 6.5.3.6生成应用时的javax/xml/bind/DatatypeConverter错误

这个问题我之前帮朋友排查过,本质是Java 9的模块化系统改动坑了旧版本的Sencha工具——从Java 9开始,JAXB(XML绑定相关的类库)不再是JDK核心默认包含的模块了,而Sencha ExtJS 6.5.3.6的构建工具还依赖这个类库,所以运行时会抛出找不到类的错误。下面给你几个靠谱的修复方案:

方案1:给Sencha命令添加JVM参数

直接在执行Sencha生成命令时,加上指定加载JAXB模块的参数,具体操作如下:

假设你原来的生成命令是:

sencha app generate MyApp ./Desktop/MyApp

修改为:

sencha -J--add-modules=java.xml.bind app generate MyApp ./Desktop/MyApp

-J是Sencha命令传递JVM参数的前缀,--add-modules=java.xml.bind会告诉JVM加载缺失的JAXB模块,这样就能找到DatatypeConverter类了。

方案2:切换到Java 8环境

如果你的项目没有必须用Java 9的需求,最省心的办法就是切换回Java 8。因为Java 8中JAXB是核心类库的一部分,Sencha ExtJS 6.5.3.6的工具对Java 8的兼容性完全没问题,不需要任何额外配置就能正常生成应用。

你可以通过以下步骤切换:

  • 下载安装对应系统版本的Java 8
  • 配置环境变量JAVA_HOME指向Java 8的安装目录
  • 验证:在终端执行java -version,确认显示的是Java 8版本后,再重新运行Sencha生成命令

方案3:手动添加JAXB依赖包(不推荐,较繁琐)

如果一定要用Java 9,也可以手动下载JAXB的相关jar包,添加到Sencha工具的类路径中:

  1. 下载jaxb-api.jar、jaxb-core.jar、jaxb-impl.jar这几个核心包
  2. 找到Sencha Cmd的安装目录,把这些jar包放到lib目录下
  3. 重新运行生成命令

不过这个方法容易出现版本兼容问题,不如前两个方案稳妥。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:17:53