由于java.lang.NoClassDefFoundError

时间:2016-01-07 19:29:46

标签: java eclipse noclassdeffounderror jsprit

我正在调查jsprit库。为此,我刚刚在Eclipse中创建了一个新项目并复制粘贴了demo example class。然后我将所有罐子添加到路径中,包括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");

2 个答案:

答案 0 :(得分:1)

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

请参阅:

LogManager (Version 1.x)

LogManager (Version 2.x)

答案 1 :(得分:0)

log4j-1.2.17.jar实现了log4j版本1及其相当旧的版本。你需要的是log4j 2的实现 - 添加它作为依赖:link