刚尝试在JRE 10中运行我的应用程序(自从9最近被杀以来)。下面的错误表明它需要ant.jar,但这完全是胡说八道。应用程序不需要运行 ant,它可以很好地工作在所有JRE的所有返回到7的地方。我遗漏了什么?为什么运行时需要一些完全无关的东西?
java.lang.NoClassDefFoundError: org/apache/tools/ant/taskdefs/Execute
at org.apache.commons.configuration.EnvironmentConfiguration.extractProperties14(EnvironmentConfiguration.java:160)
at org.apache.commons.configuration.EnvironmentConfiguration.<init>(EnvironmentConfiguration.java:77)
at org.apache.commons.configuration.interpol.EnvironmentLookup.<init>(EnvironmentLookup.java:51)
at org.apache.commons.configuration.interpol.ConfigurationInterpolator.<clinit>(ConfigurationInterpolator.java:386)
.......
Caused by: java.lang.ClassNotFoundException: org.apache.tools.ant.taskdefs.Execute
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)发布于 2018-07-17 11:58:51
您似乎依赖于的一个相当老的版本。我在版本1.10和2.2中都找不到上面提到的行。
如果要详细说明优先排序版本的来源,我想您将看到类似于super(new HashMap<String, Object>(System.getenv()));和extractProperties14(..) (我在上面提到的版本中找不到的)一些由于某种逻辑而访问org.apache.tools.ant.taskdefs.Execute的代码。
因此,我建议更新依赖关系的版本,或者,如果不允许这样做,则删除导致错误的SystemProperty,并且在默认情况下由JRE提供。
发布于 2018-07-17 11:59:29
我似乎已经找到了答案,但在这一点上可能会提出更多的问题。嗯,至少这个应用程序看起来像以前一样起作用了。违犯的依赖项是commons-configuration-1.7.jar.一旦升级到commons-configuration-1.10.jar,,一切都好起来了。或者看起来。坦白地说,我不知道如何控制最近java世界升级的进程.
https://stackoverflow.com/questions/51376379
复制相似问题