java - 初始 SessionFactory 创建失败。java.lang.NoClassDefFoundError : org/hiber nate/cfg/Configuration

标签 java hibernate jar cmd sessionfactory

我在 Eclipse 中创建了一个项目并成功执行了它(这是一个普通的项目,没有 Maven 或 Beans,非常简单),我用该项目创建了一个 .jar 并尝试执行它但是它抛出以下错误:

C:\Documents\wrapper-windows-x86-64-3.5.19-st\bin>java -cp QuoteHandler.jar stoc
k.view.Main
Initial SessionFactory creation failed.java.lang.NoClassDefFoundError: org/hiber
nate/cfg/Configuration
Exception in thread "Quotes" java.lang.ExceptionInInitializerError
        at stock.controller.HollidayController.<clinit>(HollidayController.java:
25)
        at stock.view.MainThread.run(MainThread.java:57)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration
        at stock.controller.HollidayController.<clinit>(HollidayController.java:
22)
        ... 2 more
Caused by: java.lang.ClassNotFoundException: org.hibernate.cfg.Configuration
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.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 sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 3 more

项目的.classpath文件有:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre7"/>
    <classpathentry kind="lib" path="lib/antlr-2.7.7.jar"/>
    <classpathentry kind="lib" path="lib/dom4j-1.6.1.jar"/>
    <classpathentry kind="lib" path="lib/hibernate-commons-annotations-4.0.1.Final.jar"/>
    <classpathentry kind="lib" path="lib/hibernate-core-4.1.10.Final.jar" sourcepath="lib/hibernate-core-4.1.10.Final.jar"/>
    <classpathentry kind="lib" path="lib/hibernate-entitymanager-4.1.10.Final.jar"/>
    <classpathentry kind="lib" path="lib/hibernate-jpa-2.0-api-1.0.1.Final.jar"/>
    <classpathentry kind="lib" path="lib/javassist-3.15.0-GA.jar"/>
    <classpathentry kind="lib" path="lib/jboss-logging-3.1.0.GA.jar"/>
    <classpathentry kind="lib" path="lib/jboss-transaction-api_1.1_spec-1.0.0.Final.jar"/>
    <classpathentry kind="lib" path="lib/mysql-connector-java-5.1.20-bin.jar"/>
    <classpathentry kind="lib" path="lib/org.springframework.beans_3.1.4.RELEASE.jar"/>
    <classpathentry kind="lib" path="lib/org.springframework.web_3.1.4.RELEASE.jar"/>
    <classpathentry kind="lib" path="lib/org.springframework.context_3.1.4.RELEASE.jar"/>
    <classpathentry kind="lib" path="lib/joda-time-2.2.jar"/>
    <classpathentry kind="lib" path="lib/c3p0-0.9.1.jar"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

网上查了一下我把%CLASSPATH%变量修改为:

CLASSPATH = C:\Program Files\Java\jre7\lib;C:\Program Files\Java\jre7\lib\c3p0-0.9.1.jar

所有引用都在项目的构建路径中配置好并且可以正常工作,但是当我执行 .jar 时它不起作用(所有引用都包含在 jar 中)。我错过了什么?

最佳答案

当您使用 -cp 运行程序时特别指定类路径时,您会覆盖默认的 CLASSPATH os 变量。

因此您需要将所有需要的类/jar 指定为 -cp 中的列表,或者您需要修改您的 CLASSPATH 以包含您的 jar 目录。这个问题,Setting multiple jars in java classpath , 描述了设置多个类路径元素。

关于java - 初始 SessionFactory 创建失败。java.lang.NoClassDefFoundError : org/hiber nate/cfg/Configuration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16555720/

相关文章:

java hibernate标准错误

java - 线程 "main"java.lang.NoClassDefFoundError : edu/stanford/nlp/time/SUTimeMain 中出现异常

java - Java中的匿名类扩展线程

java - jXLS 生成 Excel 2007 或 2010

java - 在我的(java spring mvc + mysql应用程序,thymeleaf)中实现spring security后,身份验证发生了一些奇怪的事情

java - 为什么我的程序在退出一个功能时将打开提示打印到控制台两次,而在退出其他功能时却将打开提示打印到控制台一次?

java - Tapestry Hibernate session 超出 ExecutorService 固定线程池后关闭

java - RequestContextHolder.getRequestAttributes() null - Spring Security + Multi-Tenancy

java - 从 Jar 文件在 linux 中发送电子邮件

java - 如何从类路径中获取 ResourceBundle 文件?