java - ClassNotFoundException:Java 11 上的 org.apache.tools.ant.util.regexp.Jdk14RegexpRegexp
问题描述
我在我的 Java 类中使用 ant-nodeps.jar 通过组合插件来构建 EAR 文件。从 Java 8 迁移到 Java 11 后出现以下错误。
原因:找不到支持的正则表达式匹配器:java.lang.ClassNotFoundException: org.apache.tools.ant.util.regexp.Jdk14RegexpRegexp at org.apache.tools.ant.util.regexp.RegexpFactory.newRegexp(RegexpFactory.java: 92) 在 org.apache.tools.ant.types.RegularExpression.init(RegularExpression.java:80) 在 org.apache.tools.ant.types.RegularExpression.getPattern(RegularExpression.java:110) 在 classpath//org。 apache.tools.ant.taskdefs.optional.ReplaceRegExp.doReplace(ReplaceRegExp.java:347) 在类路径//org.apache.tools.ant.taskdefs.optional.ReplaceRegExp.execute(ReplaceRegExp.java:503) 在类路径// org.app.tools.ant.appReplaceRegExp.replaceregexp(appReplaceRegExp.java:31) at classpath//org.app.tools.ant.appReplaceRegExp.replaceregexp(appReplaceRegExp.java:14) at org.app.assembler.war.WARAssembler .assembleScriptIncludes(WARAssembler.java:452) at org.app.assembler.war.WARAssembler.execute(WARAssembler.java:122) ... 35 更多原因:java.lang.ClassNotFoundException: org.apache.tools.ant.util.regexp.Jdk14RegexpRegexp at java .base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583) 在 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) 在 java.base/java.lang .ClassLoader.loadClass(ClassLoader.java:521) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:398) at org.apache .tools.ant.util.ClasspathUtils.newInstance(ClasspathUtils.java:266) 在 org.apache.tools.ant.util.regexp.RegexpFactory.createRegexpInstance(RegexpFactory.java:107) 在 org.apache.tools.ant.util .regexp.RegexpFactory.newRegexp(RegexpFactory.java:72) ... 43 更多execute(WARAssembler.java:122) ... 35 更多原因:java.lang.ClassNotFoundException: org.apache.tools.ant.util.regexp.Jdk14RegexpRegexp at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass( BuiltinClassLoader.java:583) 在 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) 在 java .base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:398) at org.apache.tools.ant.util.ClasspathUtils.newInstance(ClasspathUtils. java:266) 在 org.apache.tools.ant.util.regexp.RegexpFactory.createRegexpInstance(RegexpFactory.java:107) 在 org.apache.tools.ant.util.regexp.RegexpFactory.newRegexp(RegexpFactory.java:72) ... 43 更多execute(WARAssembler.java:122) ... 35 更多原因:java.lang.ClassNotFoundException: org.apache.tools.ant.util.regexp.Jdk14RegexpRegexp at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass( BuiltinClassLoader.java:583) 在 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) 在 java .base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:398) at org.apache.tools.ant.util.ClasspathUtils.newInstance(ClasspathUtils. java:266) 在 org.apache.tools.ant.util.regexp.RegexpFactory.createRegexpInstance(RegexpFactory.java:107) 在 org.apache.tools.ant.util.regexp.RegexpFactory.newRegexp(RegexpFactory.java:72) ... 43 更多util.regexp.Jdk14RegexpRegexp 在 java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583) 在 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) 在java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) 在 java.base/java.lang.Class.forName0(Native Method) 在 java.base/java.lang.Class.forName(Class.java :398) 在 org.apache.tools.ant.util.regexp.RegexpFactory.createRegexpInstance(RegexpFactory.java:107) 在 org.apache.tools.ant.util.ClasspathUtils.newInstance(ClasspathUtils.java:266) 在 org. apache.tools.ant.util.regexp.RegexpFactory.newRegexp(RegexpFactory.java:72) ... 43 更多util.regexp.Jdk14RegexpRegexp 在 java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583) 在 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) 在java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) 在 java.base/java.lang.Class.forName0(Native Method) 在 java.base/java.lang.Class.forName(Class.java :398) 在 org.apache.tools.ant.util.regexp.RegexpFactory.createRegexpInstance(RegexpFactory.java:107) 在 org.apache.tools.ant.util.ClasspathUtils.newInstance(ClasspathUtils.java:266) 在 org. apache.tools.ant.util.regexp.RegexpFactory.newRegexp(RegexpFactory.java:72) ... 43 更多loadClass(ClassLoaders.java:178) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) 在 java.base/java.lang.Class.forName0(Native Method) 在 java.base/java。 org.apache.tools.ant.util.ClasspathUtils.newInstance(ClasspathUtils.java:266) 上的 lang.Class.forName(Class.java:398) org.apache.tools.ant.util.regexp.RegexpFactory.createRegexpInstance( RegexpFactory.java:107) 在 org.apache.tools.ant.util.regexp.RegexpFactory.newRegexp(RegexpFactory.java:72) ... 43 更多loadClass(ClassLoaders.java:178) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) 在 java.base/java.lang.Class.forName0(Native Method) 在 java.base/java。 org.apache.tools.ant.util.ClasspathUtils.newInstance(ClasspathUtils.java:266) 上的 lang.Class.forName(Class.java:398) org.apache.tools.ant.util.regexp.RegexpFactory.createRegexpInstance( RegexpFactory.java:107) 在 org.apache.tools.ant.util.regexp.RegexpFactory.newRegexp(RegexpFactory.java:72) ... 43 更多ant.util.regexp.RegexpFactory.newRegexp(RegexpFactory.java:72) ... 43 更多ant.util.regexp.RegexpFactory.newRegexp(RegexpFactory.java:72) ... 43 更多
我正在使用 ant-1.7.1 版本。知道如何解决这个问题吗?
解决方案
考虑将 ant 版本升级到更新的版本。1.7.1 可以追溯到 2008 年 7 月,也就是 13 年前。
推荐阅读
- c++ - x64 dll堆栈访问超出范围?
- java - 数组不包含递归中的前一个值(JAVA)
- go - bcrypt 生成不正确的哈希 - 我的用户输入处理是否正确?
- jquery - 如何仅访问嵌套 json 文件中的一个元素
- facebook - 如何在 facebook messenger 前弹出 URL?
- java - 在 Eclipse 中创建 Maven 项目时出现认证路径错误
- svg - SVG 填充的图像如何适应大小?
- c - Makefile 可能错误,未定义对 C 中函数的引用
- xcode - Xcode git 不能忽略所有 *.xcodeproj/xcuserdata/ 文件夹
- javascript - 无法在 python selenium 中选择 JS 下拉选项