我在Windows中的Eclipse中构建了一个Java程序,它运行良好。该计划包括5个Java类和5个jar库文件。Java无法在Linux中的.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
要运行:(主要方法是在履带类,主要的方法需要在租赁1参数)
java -cp ./htmlparser.jar:./filterbuilder.jar:./sitecapturer.jar:./thumbelina.jar:./htmllexer.jar Crawler arg0 arg1
然后我上面的异常。我编译并正确运行了吗?为什么我得到这个异常?谢谢。
您指定的java命令不能正确。 -cp需要先行。你指定它的方式,-cp和它后面的所有内容都是Crawler主要方法的参数。这虽然会产生不同的错误信息,即找不到Crawler类。 – 2014-09-26 21:56:35
正如你所说,如果我把-cp放在第一位,但是我得到了Crawler的异常: 线程“main”中的异常java.lang.NoClassDefFoundError:Crawler 引起:java.lang.ClassNotFoundException:Crawler – Serene 2014-09-26 22:01:22
所以你可以请教我正确的方式来运行它? – Serene 2014-09-26 22:04:14