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

MyBatis Generator 1.4.2运行报错:accessExternalDTD不被识别

解决MyBatis Generator的accessExternalDTD错误

以下是几种无需添加额外javax依赖的解决方法:

方法1:给MBG运行配置添加VM参数

通过设置Java虚拟机参数放宽XML的外部DTD访问限制:

  • 打开Eclipse,依次进入 Window > Preferences > MyBatis Generator > Run Configurations
  • 选中你的MBG运行配置,切换到Arguments标签页
  • 在VM arguments输入框中添加:
-Djavax.xml.accessExternalDTD=all
  • 保存配置后重新运行MyBatis Generator

方法2:使用本地DTD文件替代远程加载

避免远程加载DTD触发安全限制:

  1. 下载MyBatis Generator的配置DTD文件mybatis-generator-config_1_0.dtd,将其放置到项目的资源目录下(例如src/main/resources/dtd/)
  2. 修改你的MBG配置文件config.xml的DOCTYPE声明,替换为本地文件路径:
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"classpath:dtd/mybatis-generator-config_1_0.dtd">
  1. 重新运行MBG即可

方法3:修正配置文件中的潜在问题(附带优化)

你的配置里还有两个可能引发问题的点,建议一并修正:

  • MySQL驱动类不匹配:你使用的是MySQL Connector/J 8.0.31,驱动类应该改为com.mysql.cj.jdbc.Driver,而非旧版的com.mysql.jdbc.Driver
  • 依赖jar包错误:classPathEntry引用的是sources.jar,应该替换为普通的编译jar包mysql-connector-j-8.0.31.jar

修正后的jdbcConnection和classPathEntry片段:

<classPathEntry location="C:\Users\.m2\repository\com\mysql\mysql-connector-j\8.0.31\mysql-connector-j-8.0.31.jar"/>

<jdbcConnection connectionURL="jdbc:mysql://localhost:3306/xxx" 
    driverClass="com.mysql.cj.jdbc.Driver" 
    password="fuego" 
    userId="xxxx" />

内容的提问来源于stack exchange,提问作者Cristian López González

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 08:25:34