Java 无法在 Linux 中的 .jar 文件中找到类

标签 java linux class exception jar

我在 Windows 的 Eclipse 中构建了一个 java 程序,它运行良好。该程序包括5个java类和5个jar库文件。

然后我把所有的*.java文件和*.jar文件复制到Linux。编译运行后出现异常,找不到htmlparser.jar的PaserException类。

Exception in thread "main" java.lang.NoClassDefFoundError: org/htmlparser/util/ParserException
Caused by: java.lang.ClassNotFoundException: org.htmlparser.util.ParserException
        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:323)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:268)

刚开始学linux,不知道编译运行是否正确。

我所有的文件(*.java和*.jar)都在同一个目录下,我的操作都在这个目录下。

编译:

javac -cp ./htmlparser.jar:./filterbuilder.jar:./sitecapturer.jar:./thumbelina.jar:./htmllexer.jar *.java

运行:(main方法在Crawler类中,main方法至少需要1个参数)

java -cp ./htmlparser.jar:./filterbuilder.jar:./sitecapturer.jar:./thumbelina.jar:./htmllexer.jar Crawler arg0 arg1

然后我得到了上面的异常。我是否正确编译并运行了它?为什么我得到这个异常(exception)?谢谢。

最佳答案

保存类文件 (.) 的文件夹不在类路径中。添加另一个 :. 到类路径:

java -cp ./htmlparser.jar:./filterbuilder.jar:./sitecapturer.jar:./thumbelina.jar:./htmllexer.jar:. Crawler arg0 arg1

关于Java 无法在 Linux 中的 .jar 文件中找到类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26068809/

相关文章:

linux - 查找并列出纯文本文件中的重复单词

C++ 错误 : invalid use of 'AppleFarmer::AppleFarmer' when ca

html - 保存富字段后,Microsoft Sharepoint 将 "External Class"添加到我的 CSS

linux - ffmpeg 视频上的图像水印 左下角视频的前半部分和右上角的视频下半部分

java - 如何从有序列表中选择随机起始位置?

inno-setup - jre 1.6 inno中的检查和进度条

java - Avro 序列化异常 - java.time.Instant 无法转换为 java.lang.Long

linux - Bash 选项卡完成改变了行为

class - 关于UML类模型中的1对1关联

java - 如何从具有不同结果的 Realm 数据库中查询java