由于java.lang.NoClassDefFoundError,无法运行代码



我正在研究jsprit库。为此,我刚刚在Eclipse中创建了一个新项目,并复制粘贴了演示示例类。然后,我将所有jar添加到路径中,包括log4j-1.2.17.jar。由于以下错误,我无法执行演示代码:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/logging/log4j/LogManager
    at jsprit.core.problem.vehicle.VehicleImpl$Builder.<clinit>(VehicleImpl.java:108)
    at com.test.jsprit.main(jsprit.java:49)
Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 2 more

它到底意味着什么?如何解决这个问题?这是否意味着遗漏了其他*.jar文件?

更新:

错误发生在以下行:

Builder vehicleBuilder = VehicleImpl.Builder.newInstance("vehicle");

您使用了错误版本的log4j-lib。你需要2.x版本。

参见:

LogManager(1.x版)

LogManager(版本2.x)

log4j-1.2.17.jar实现了log4j版本1及其相当古老的版本。您需要的是log4j2的实现-将其添加为依赖项:link

相关内容

  • 没有找到相关文章

最新更新