使用 Hibernate 时出现 NoClassDefFoundError

NoClassDefFoundError when working with Hibernate

我为一个有关 Hibernate for Eclipse 初始设置的问题苦苦挣扎了几个小时。更准确地说,我遇到了这个错误,我到处寻找解决方案。如果有人能帮我解决这个问题,我将不胜感激!

Exception in thread "main" java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access0(Unknown Source)
at java.net.URLClassLoader.run(Unknown Source)
at java.net.URLClassLoader.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.hibernate.test.Main.main(Main.java:16)
Caused by: java.lang.ClassNotFoundException: org.hibernate.cfg.Configuration
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)

你的 maven 依赖有问题。如果你使用的是休眠注释,你应该添加 hibernate-annotations jar

您收到错误消息是因为 Tomcat 无法使用休眠库。在您的图片中,休眠库集下方有一个名为 'Web App Libraries' 的空集 - 这是您的休眠库需要位于的集。

右键单击您的项目 -> 构建路径 -> 配置构建路径,然后从构建路径中删除休眠集。现在 将 jar 导入 WEB-INF/lib 文件夹刷新您的项目,现在您应该会看到它们列在 'Web App Libraries' 集中(我很欣赏这有点烦人,您必须将它们导入您的代码库 - 其他人可能知道一种不涉及将罐子复制到其中的更好方法)

如果您使用的是 maven,那么 hibernate jar 的版本会有一些差异,

请清除 maven 目录中的所有 jar,然后再次让 ma​​ven 下载这些 jar。

希望这能解决您的问题。