gpt4 book ai didi

java.lang.NoClassDefFoundError - 使用外部库运行 java 文件

转载 作者:行者123 更新时间:2023-11-29 09:11:02 25 4
gpt4 key购买 nike

我是 java 的新手,曾在 netBeans 中使用过它,但从未尝试过从终端编译或运行它。所以,我的问题可能看起来很幼稚。我有一个这种结构的目录:

文件夹 X 包含:几个文件和一个名为 esa-lucene 的文件夹。

esa-lucene 是一个包含三个文件夹的目录src、lib、web:

.classpath, lib, .project, .settings, src, web

我正在尝试运行此子目录中存在的 java 文件“ESAWikipediaIndexer.java”:

X/esa-lucene/src/edu/wiki/index/ESAWikipediaIndexer.java

我 cd 到 Folder X 并使用它:

java -cp esa-lucene.jar edu.wiki.index.ESAWikipediaIndexer

但它给了我这个错误:

Exception in thread "main" java.lang.NoClassDefFoundError: edu/wiki/index/ESAWikipediaIndexer
Caused by: java.lang.ClassNotFoundException: edu.wiki.index.ESAWikipediaIndexer
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: edu.wiki.index.ESAWikipediaIndexer. Program will exit.

我还检查了 .classpath,它包含:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="lib/servlet-api.jar"/>
<classpathentry kind="lib" path="web/WEB-INF/lib/lucene-analyzers-3.0.0.jar"/>
<classpathentry kind="lib" path="web/WEB-INF/lib/lucene-core-3.0.0.jar"/>
<classpathentry kind="lib" path="web/WEB-INF/lib/mysql-connector-java-5.1.12-bin.jar"/>
<classpathentry kind="lib" path="web/WEB-INF/lib/trove-2.1.0.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

我也检查了 libweb/WEB-INF/lib/ 文件夹,所有需要的外部库(jar 文件)也存在于这个文件夹中.

我搜索以找到任何解决方案并尝试了一些方法,但都没有奏效。不知道如何让它工作!

顺便说一句,显然以前有人用过这个包,我也只是下载来使用它,但到目前为止还没有成功。

最佳答案

看起来您指的是 Eclipse 类路径和 .project 文件。既然如此,为什么不尝试在 eclipse 中运行它。

然而,由于您在此处手动运行它,因此未使用类路径文件中的类路径条目。您还可以告诉我们 ESAWikipediaIndexer.java 的 .class 文件在哪里。如果你运行下面的命令

java -cp */esa-lucene.jar edu.wiki.index.ESAWikipediaIndexer

从它所在的目录,它应该可以工作。您还需要在上述命令中提供 esa-lucene.jar 的完整路径或相对路径。

关于java.lang.NoClassDefFoundError - 使用外部库运行 java 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12467539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com