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

Ant持续将旧MySQL Connector Jar加入类路径,修改后仍未解决

解决Ant构建时顽固引用旧MySQL Connector的问题

问题根因

你的IDE内运行正常但独立程序失败,核心问题出在Ant构建时,run.classpath变量里还挂着旧的mysql-connector依赖,导致生成的Manifest.mf里的Class-Path依然指向旧jar,完全没用到你新添加的8.x版本连接器。

分步解决

1. 彻底清除旧依赖

  • 打开JDeveloper的项目库列表,完全删除所有旧版本的mysql-connector条目,别只替换,确保没有残留。
  • 去项目的物理lib文件夹里手动删除旧jar文件,避免Ant构建时误引用遗留文件。

2. 排查run.classpath变量

Ant脚本里的run.classpath是生成Manifest Class-Path的核心来源,必须确保它只包含新连接器:

  • 在JDeveloper的构建配置中找到run.classpath的定义,检查是否存在旧mysql-connector的路径,有则立即移除。
  • 可以在Ant脚本中添加调试任务,快速定位旧依赖的来源:
<target name="debug-classpath">
    <echo message="当前run.classpath内容: ${run.classpath}"/>
</target>

运行ant debug-classpath查看输出,找到旧依赖路径后从配置中删除。

3. 清理缓存并重新构建

  • 先执行Ant的clean任务,彻底清除build、dist目录下的旧编译产物和jar文件,避免缓存干扰。
  • 重新执行构建任务,确保Ant从更新后的run.classpath复制新的连接器jar,并生成正确的Manifest.mf。

4. 检查copylibs映射逻辑

从你提供的copylibs宏定义来看,它会将run.classpath转换为Manifest中的路径:

  • 确认copylibs.excludes属性没有意外排除新版本的连接器(此问题概率较低,但可以排查)。
  • 验证新的连接器jar是否被正确复制到输出的lib目录,且Manifest中的路径格式为lib/mysql-connector-java-8.x.x.jar。

5. 手动验证最终结果

构建完成后,解压生成的jar文件,打开META-INF/Manifest.mf查看Class-Path属性,确认其中只包含新版本的mysql-connector路径,旧的5.1版本路径必须完全消失。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 20:38:25