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

Red*_*xel 5 java hibernate cmd jar 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
Run Code Online (Sandbox Code Playgroud)

该项目的.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>
Run Code Online (Sandbox Code Playgroud)

检查Internet我将%CLASSPATH%变量修改为:

CLASSPATH = C:\Program Files\Java\jre7\lib;C:\Program Files\Java\jre7\lib\c3p0-0.9.1.jar
Run Code Online (Sandbox Code Playgroud)

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

Sne*_*tel 2

尝试 Eclipse 中的以下选项:

  1. 文件->导出
  2. 从向导中选择 Java->Runnable JAR file
  3. 点击下一步
  4. 选择启动配置:选择具有 main() 方法的类,如果此处不可用,则尝试在 eclipse 中运行您的程序
  5. 导出目标:选择 jar 文件的完整路径
  6. 库处理:选择第三个“复制所需的库...”
  7. 点击完成

转到命令提示符并将目录更改为导出的 jar 文件并输入 java -jar <exported_jar>.jar

需要注意的是:在 java 中,类路径 lib/* 无法解析目录中的所有 jar,您必须手动键入每个 jar 条目。