繁体   English   中英

Jar文件给出java.lang.NoClassDefFoundError

[英]Jar file gives java.lang.NoClassDefFoundError

我有一个在Eclipse中运行时运行良好的Eclipse项目。 我已经在Eclipse中创建了一个Jar文件。 但是当我使用以下命令运行它时:

D:\Java\projects\fetch>java -Xss1000m -XX:-UseGCOverheadLimit -Xmx5048m -jar bin\fetch.jar

我收到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: info/monitorenter/cpdetector/io/ICodepageDetector
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
    at java.lang.Class.getMethod0(Unknown Source)
    at java.lang.Class.getMethod(Unknown Source)
    at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
    at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: info.monitorenter.cpdetector.io.ICodepageDetector
    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)
    ... 6 more

罐子里的东西是:

com (folder)
dist (folder)
doc (folder)
lib  (folder, contains all the jars, including the cpdetector jar)
META-INF (folder)
resources (folder)
sources (folder)
.classpath (file)
.project (file)
hibernate.cfg.xml (file)
log4j.xml (file)

.classpath文件的内容为:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="lib" path="D:/Java/projects/boilerpipe-master/target/boilerpipe-core-1.2.2.jar"/>
<classpathentry kind="lib" path="D:/Java/projects/boilerpipe-master/target/boilerpipe-core-1.2.2-jar-with-dependencies.jar"/>
<classpathentry kind="lib" path="lib/jsoup-1.7.2.jar"/>
<classpathentry kind="lib" path="lib/ahocorasick-1.4-SNAPSHOT-all.jar"/>
<classpathentry kind="lib" path="lib/ahocorasick-1.4-SNAPSHOT.jar"/>
<classpathentry kind="lib" path="lib/antlr-3.4-complete.jar"/>
<classpathentry kind="lib" path="lib/chardet.jar"/>
<classpathentry kind="lib" path="lib/commons-fileupload-1.2.2.jar"/>
<classpathentry kind="lib" path="lib/commons-httpclient-3.1.jar"/>
<classpathentry kind="lib" path="lib/commons-io-2.4.jar"/>
<classpathentry kind="lib" path="lib/commons-lang-2.6.jar"/>
<classpathentry kind="lib" path="lib/commons-lang3-3.1.jar"/>
<classpathentry kind="lib" path="lib/commons-validator-1.4.0.jar"/>
<classpathentry kind="lib" path="lib/horrorss-2.2.0.jar"/>
<classpathentry kind="lib" path="lib/jackson-core-2.1.4.jar"/>
<classpathentry kind="lib" path="lib/jackson-core-asl-1.9.12.jar"/>
<classpathentry kind="lib" path="lib/jackson-mapper-asl-1.9.12.jar"/>
<classpathentry kind="lib" path="lib/jdom-1.1.3.jar"/>
<classpathentry kind="lib" path="lib/jdom-2.0.4.jar"/>
<classpathentry kind="lib" path="lib/jericho-html-3.3.jar"/>
<classpathentry kind="lib" path="lib/jline.jar"/>
<classpathentry kind="lib" path="lib/joda-time-2.2.jar"/>
<classpathentry kind="lib" path="lib/lucene-analyzers-3.6.2.jar"/>
<classpathentry kind="lib" path="lib/lucene-core-3.6.2.jar"/>
<classpathentry kind="lib" path="lib/nekohtml-1.9.13.jar"/>
<classpathentry kind="lib" path="lib/rome-1.0.jar"/>
<classpathentry kind="lib" path="lib/tika-app-1.3.jar"/>
<classpathentry kind="lib" path="lib/xerces-2.9.1.jar"/>
<classpathentry kind="lib" path="lib/xstream-1.4.4.jar"/>
<classpathentry kind="lib" path="lib/hibernate-release-4.2.0.Final/envers/hibernate-envers-4.2.0.Final.jar"/>
<classpathentry kind="lib" path="lib/hibernate-release-4.2.0.Final/jpa/hibernate-entitymanager-4.2.0.Final.jar"/>
<classpathentry kind="lib" path="lib/hibernate-release-4.2.0.Final/required/antlr-2.7.7.jar"/>
<classpathentry kind="lib" path="lib/hibernate-release-4.2.0.Final/required/dom4j-1.6.1.jar"/>
<classpathentry kind="lib" path="lib/hibernate-release-4.2.0.Final/required/hibernate-commons-annotations-4.0.1.Final.jar"/>
<classpathentry kind="lib" path="lib/hibernate-release-4.2.0.Final/required/hibernate-core-4.2.0.Final.jar" sourcepath="C:/Users/Nick/.m2/repository/org/hibernate/hibernate-core/4.2.0.Final/hibernate-core-4.2.0.Final-sources.jar"/>
<classpathentry kind="lib" path="lib/hibernate-release-4.2.0.Final/required/hibernate-jpa-2.0-api-1.0.1.Final.jar"/>
<classpathentry kind="lib" path="lib/hibernate-release-4.2.0.Final/required/javassist-3.15.0-GA.jar"/>
<classpathentry kind="lib" path="lib/hibernate-release-4.2.0.Final/required/jboss-logging-3.1.0.GA.jar"/>
<classpathentry kind="lib" path="lib/hibernate-release-4.2.0.Final/required/jboss-transaction-api_1.1_spec-1.0.0.Final.jar"/>
<classpathentry kind="lib" path="lib/hibernate-release-4.2.0.Final/optional/ehcache/ehcache-core-2.4.3.jar"/>
<classpathentry kind="lib" path="lib/hibernate-release-4.2.0.Final/optional/ehcache/hibernate-ehcache-4.2.0.Final.jar"/>
<classpathentry kind="lib" path="lib/hibernate-release-4.2.0.Final/optional/ehcache/slf4j-api-1.6.1.jar"/>
<classpathentry kind="lib" path="C:/java/tomcat6/tomcat 6.0.35/lib/mysql-connector-java-5.1.22-bin.jar"/>
<classpathentry kind="lib" path="lib/htmlcleaner-2.4.jar"/>
<classpathentry kind="lib" path="lib/freebase-java-1.0.0.jar"/>
<classpathentry kind="lib" path="lib/javax.mail.jar"/>
<classpathentry kind="lib" path="lib/opencsv-2.3.jar"/>
<classpathentry kind="lib" path="lib/google-api-client-1.14.1-beta.jar"/>
<classpathentry kind="lib" path="lib/google-http-client-1.14.1-beta.jar"/>
<classpathentry kind="lib" path="lib/json-simple-1.1.1.jar"/>
<classpathentry kind="lib" path="lib/json-smart-1.1.jar"/>
<classpathentry kind="lib" path="lib/javatuples-1.2.jar"/>
<classpathentry kind="lib" path="lib/json-path-0.8.1.jar" sourcepath="C:/Users/Nick/.m2/repository/com/jayway/jsonpath/json-path/0.8.1/json-path-0.8.1-sources.jar"/>
<classpathentry kind="lib" path="lib/json-20090211.jar"/>
<classpathentry kind="lib" path="lib/lucene-4.3.0/core/lucene-core-4.3.0.jar"/>
<classpathentry kind="lib" path="lib/lucene-4.3.0/suggest/lucene-suggest-4.3.0.jar"/>
<classpathentry kind="lib" path="lib/solr-core-4.2.1.jar"/>
<classpathentry kind="lib" path="lib/solr-solrj-4.2.1.jar"/>
<classpathentry kind="lib" path="lib/quartz-all-2.1.7.jar"/>
<classpathentry kind="lib" path="lib/simplelatlng-1.2.0.jar"/>
<classpathentry kind="lib" path="lib/obsidian.jar"/>
<classpathentry kind="lib" path="lib/CareerjetAPIClient.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre6"/>
<classpathentry kind="lib" path="lib/goose-2.1.22-jar-with-dependencies.jar"/>
<classpathentry kind="con" path="com.ateji.bldt.ui.ATEJILIB_CONTAINER"/>
<classpathentry kind="lib" path="lib/commons-lang-2.4.jar"/>
<classpathentry kind="lib" path="lib/commons-logging-1.0.4.jar"/>
<classpathentry kind="lib" path="lib/httpclient-4.2.3.jar"/>
<classpathentry kind="lib" path="lib/httpcore-4.2.2.jar"/>
<classpathentry kind="lib" path="lib/httpmime-4.2.3.jar"/>
<classpathentry kind="lib" path="lib/commons-codec-1.2.jar"/>
<classpathentry kind="lib" path="lib/commons-math3-3.2.jar" sourcepath="sources"/>
<classpathentry kind="lib" path="lib/guava-14.0.1.jar"/>
<classpathentry kind="lib" path="lib/cpdetector_1.0.10.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

我已经用Google搜索了java.lang.NoClassDefFoundError,并且已经尝试了很多东西,但是它们都不起作用。 欢迎所有建议。 谢谢。

在命令行上运行Java时,必须提供类路径。

java -cp lib/commons-fileupload-1.2.2.jar;......

或者您可以在eclipse(启动配置)中运行它,而eclipse会为您提供类路径。 .classpath文件是eclipse工件,因此只能由eclipse识别。

或者,您可以使用eclipse的可运行jar导出 Export -> Runnable Jar File 确保在导出对话框的库处理部分中选择了“将所需的库提取到生成的JAR中”。

以jar形式运行时,需要如下指定类路径:

java -cp libOne.jar;libTwo.jar;... -jar myJar.jar

或者,由于您执行了Eclipse导出,因此选择export Runnable Jar 然后,您可以选择将Extract required libraries into generated JAR 如果执行此操作,请确保这些库的许可证允许您执行此操作。 然后,您无需指定类路径。

这样导出的罐子更易于使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM