我在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