编程语言
首页 > 编程语言> > 无法使用JRE 10运行简单的Java应用程序

无法使用JRE 10运行简单的Java应用程序

作者:互联网

刚尝试在JRE 10中运行我的应用程序(因为最近9人被杀).下面的错误表明它需要ant.jar,但这完全是胡说八道.该应用程序不需要运行蚂蚁,它可以完全正常地使用所有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)

解决方法:

您似乎依赖于相当旧版本的apache commons-configuration.我无法在版本1.10和2.2中找到提到的行.

如果你要详细说明apprioriate版本的来源,我想你会看到像super(new HashMap< String,Object>(System.getenv()));并且在extractProperties14(..)(我在上面提到的版本中找不到)的一些代码由于某些逻辑而访问org.apache.tools.ant.taskdefs.Execute.

因此,我建议更新依赖项的版本,或者,如果您不允许这样做,请删除导致错误的SystemProperty,并且默认情况下似乎由JRE提供.

标签:java,java-10
来源: https://codeday.me/bug/20190627/1303961.html