java - 运行 使用外部 jar 编译程序时出错
java - error while running compiled program with external 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.run(URLClassLoader.java:372)
at java.net.URLClassLoader.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
。那么,运行这个程序的正确方法是什么?
您需要告诉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 上的 :
分隔)
我在一个文件夹中有一个简单的 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.run(URLClassLoader.java:372)
at java.net.URLClassLoader.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
。那么,运行这个程序的正确方法是什么?
您需要告诉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 上的 :
分隔)