【发布时间】:2014-09-26 21:52:03
【问题描述】:
我在 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
然后我得到了上面的异常。我是否正确编译并运行它?为什么我得到这个异常?谢谢。
【问题讨论】:
-
您指定的java命令不正确。 -cp 需要先行。您指定它的方式,-cp 以及它后面的所有内容都将成为 Crawler 的主要方法的参数。不过,这会产生不同的错误消息,即未找到 Crawler 类。
-
如你所说,如果我把-cp放在第一位,但我得到了一个异常 Crawler: Exception in thread "main" java.lang.NoClassDefFoundError: Crawler Caused by: java.lang.ClassNotFoundException:履带式
-
那么你能教我正确的运行方法吗?
-
如果真正下载你的程序是否使用JavaFX java oracle
-
不,我没用过。
标签: java linux class exception jar