Java NoClassDefFoundError hibernate标准导出jar

Java NoClassDefFoundError hibernate标准导出jar,java,hibernate,export,manifest,Java,Hibernate,Export,Manifest,我正在尝试导出一个使用hibernate的java独立类。这是一个非常简单的读取/插入过程。我被这个错误缠住了 C:\Users\Admin\Desktop>java -jar ImportDatiMeteo2.jar Exception in thread "main" java.lang.NoClassDefFoundError: org/hibernate/criteri on/Criterion at openplan.openergy.standalone.Imp

我正在尝试导出一个使用hibernate的java独立类。这是一个非常简单的读取/插入过程。我被这个错误缠住了

C:\Users\Admin\Desktop>java -jar ImportDatiMeteo2.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/hibernate/criteri
on/Criterion
        at openplan.openergy.standalone.ImportDati.main(ImportDati.java:24)
Caused by: java.lang.ClassNotFoundException: org.hibernate.criterion.Criterion
        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)
        ... 1 more
我想这可能是一个清单文件问题,所以我检查了一下。我觉得还可以

Manifest-Version: 1.0
Class-Path: lib/antlr-2.7.6rc1.jar lib/asm-attrs.jar lib/asm.jar 
 lib/c3p0-0.8.5.2.jar lib/cglib-2.1.3.jar lib/cleanimports.jar 
 lib/commons-collections-2.1.1.jar lib/commons-logging-1.0.4.jar lib/concurrent-1.3.2.jar
 lib/connector.jar lib/dom4j-1.6.1.jar lib/ehcache-1.1.jar lib/hibernate3.jar
 lib/jaas.jar lib/jacc-1_0-fr.jar lib/jaxen-1.1-beta-7.jar
 lib/jdbc2_0-stdext.jar lib/jgroups-2.2.7.jar lib/jta.jar lib/log4j-1.2.11.jar
 lib/log4j-1.2.9.jar lib/oscache-2.1.jar lib/proxool-0.8.3.jar
 lib/swarmcache-1.0rc2.jar lib/xerces-2.6.2.jar lib/xml-apis.jar  
Created-By: 1.6.0_21 (Sun Microsystems Inc.)
Main-Class: openplan.openergy.standalone.ImportDati

在我的Eclipse中,所有项目都正常工作,有人知道问题出在哪里吗?

在从命令行运行classpath时,需要在classpath中添加这些库:

C:\> java -classpath <referenced-jars> -jar ImportDatiMeteo2.jar
C:\>java-classpath-jar ImportDatiMeteo2.jar
在myEclipse中,所有项目都正常工作,有人知道问题出在哪里吗


-->因为Eclipse将负责您的类路径和在类路径中添加库。

请检查Eclipse导出对话框中的
库处理
选项。在我这方面,它可以与hibernate配合使用,
Extract required libraries into generated JAR
selected.

您需要将hibernate JAR重新打包到您的
ImportDatiMeteo2.JAR
我没有足够的关于您想要什么和做了什么的详细信息。一般来说,JAR是一个归档文件,其中所有必需的
*.class
文件都以压缩形式存在。您可以像7-ZIP一样使用ZIP archiver检查jar内容。为了让java类加载器能够找到它,您应该在jar中有
org/hibernate/criteria/criteria.class
。你的jar里有这个文件吗?若并没有,那个么您的jar不是独立的,它需要HibernateJAR位于类路径中,可以在java命令行中设置,也可以在system environment.P.S中设置。检查eclipse导出对话框中的
库处理
选项。但如果是,请在命令行中指定它……清单文件的用途是什么?这是我第一次看到这个错误…在我刚刚使用manifest的其他项目中file@Medioman92:我会在类路径中提供库,因为它们的路径可能会更改。使用您的方法在jar中的清单中编写它们会很麻烦。我不知道我们能否在清单中给出类路径。我所知道的是,我们可以在舱单中提供主类。