java - 使用外部jar运行编译程序时出错

时间:2015-06-01 22:29:56

标签: java jar

我在一个文件夹中有一个简单的jsoup测试应用程序,其中有2个类--LyricsGetter.java和Main.java - 以及带有jsoup库的.jar文件。当我使用命令javac -cp jsoup-1.8.2.jar LyricsGetter.java Main.java编译文件时,一切都编译好了,但当我尝试使用java Main运行时,我得到:

Exception in thread "main" java.lang.NoClassDefFoundError: org/jsoup/Jsoup
    at LyricsGetter.getLyrics(LyricsGetter.java:16)
    at Main.main(Main.java:14)
Caused by: java.lang.ClassNotFoundException: org.jsoup.Jsoup
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 2 more

另一方面,如果我使用java -cp jsoup-1.8.2.jar Main,那么我会获得Error: Could not find or load main class Main。那么,运行这个程序的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您需要告诉Java在jsoup-1.8.2.jar和当前文件夹.)中查找类。

在Windows上,使用:

java -cp jsoup-1.8.2.jar;. Main

或在Linux,OSX或其他类Unix系统上使用:

java -cp jsoup-1.8.2.jar:. Main

(不同之处在于路径在Windows上由;分隔,或在* nix上由:分隔