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

Java 8迁移Java 11后使用Ant 1.7.1报Jdk14RegexpRegexp类找不到如何解决

问题根因

你使用的Ant 1.7.1属于2008年发布的老旧版本,其默认绑定的正则匹配实现为org.apache.tools.ant.util.regexp.Jdk14RegexpRegexp,该实现是针对JDK 1.4版本设计的。Java 9及以上版本引入了模块系统,对类加载逻辑做了大幅调整,老版本Ant的正则工厂类无法正常加载该JDK14适配的正则类,再加上你使用的ant-nodeps.jar是剥离了非核心依赖的精简Ant包,本身不携带其他备选正则实现,最终触发类NotFound异常。

可行解决方案
  • 优先方案:升级Ant版本
    直接将Ant升级到1.10.x及以上的正式稳定版,该版本系列已经完成了Java 11的全量兼容,默认正则实现已经适配高版本JDK的内置正则库,无需修改原有构建逻辑,替换对应版本的Ant依赖包即可解决问题。
  • 兼容方案:不升级Ant版本的前提下调整依赖
    首先在构建类路径中引入ant-apache-regexp.jar和Jakarta ORO正则依赖包,再给构建任务添加JVM启动参数:-Dant.regexp.regexpimpl=org.apache.tools.ant.util.regexp.JakartaOroRegexp,强制Ant使用ORO正则实现替代原有失效的JDK14正则实现。
  • 临时救急方案
    从Ant 1.7.1的完整安装包中提取org/apache/tools/ant/util/regexp/Jdk14RegexpRegexp.class文件,手动添加到你的构建类路径下,该方案仅适合临时验证使用,不建议长期生产环境使用。

注意:如果你自定义的appReplaceRegExp任务中存在硬编码正则实现类的逻辑,需要同步删除硬编码配置,让Ant自动加载对应版本的适配实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:15:00