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

Eclipse RCP 2021-09导出产品后报Document等类型无法解析错误

问题根因

你遇到的报错本质是JDK9+模块化和OSGi类加载机制冲突导致的类依赖缺失:
开发环境里你移除了JRE的java.xml模块后,Eclipse运行时会自动加载你手动引入的javax.xml第三方依赖,所以运行正常;但导出产品时,OSGi运行环境没有正确加载到xml相关类,导致编译时绑定的类在运行时找不到。

推荐解决方案
  • 移除手动引入的javax.xml第三方依赖,恢复Java构建路径中JRE的java.xml模块引用。你之前遇到的「多模块访问冲突」是同一个javax.xml包同时来自JDK模块和第三方依赖的split package问题,JDK17自带的java.xml模块已经包含所有dom解析需要的类,无需额外引入第三方依赖即可满足需求。
  • 打开插件项目的META-INF/MANIFEST.MF文件,做两处配置:
    1. 确认Bundle-RequiredExecutionEnvironment字段值为JavaSE-17
    2. 在Import-Package配置中添加javax.xml.parsers,org.w3c.dom,org.w3c.dom.NodeList,明确声明导入JDK提供的xml相关包
  • 打开产品配置.product文件,切换到「依赖」标签页,点击「添加所需」按钮自动补齐所有运行依赖,避免导出时遗漏组件。
  • 清理整个工作区编译缓存后重新导出产品即可。
备选方案(需保留第三方javax.xml依赖的场景)

如果业务场景必须使用第三方javax.xml包,按以下步骤配置:

  • 恢复JRE构建路径中的java.xml模块引用,不要手动移除JDK原生模块
  • 在插件的build.properties文件中添加配置,指定优先使用第三方的javax.xml包:
org.osgi.framework.system.packages.extra=javax.xml.*;version="你引入的第三方javax.xml包的版本号"
  • 打开产品配置,在「启动参数」的VM参数栏添加:
    --add-modules java.xml
  • 清理缓存后重新导出产品即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 08:36:05