簡體   English   中英

運行jar文件時出現NoClassDefFoundError異常

[英]NoClassDefFoundError Exception when running jar file

我下載了以下鏈接:

http://www.java2s.com/Code/JarDownload/java/java-json.jar.zip

然后,我將jar添加到構建路徑:右鍵單擊項目>構建路徑>配置構建路徑>選擇庫選項卡>單擊添加外部庫>選擇jar文件下載。

我能夠使用java-json庫而不會給eclipse提供任何錯誤。 但是,當我將項目導出到jar時,沒有選擇將java-json引用的庫包含在jar中。 因此,我假設通過將庫添加到“構建路徑”,我不必導出外部jar(無論如何,都沒有選擇這樣做):

在此處輸入圖片說明

創建罐子后,運行程序:

java -jar gateway.jar -p 1732

我得到了以下錯誤:

Exception in thread "Thread-0" java.lang.NoClassDefFoundError: org/json/JSONException
    at com.guarddoggps.main.UdpServer.run(UdpServer.java:28)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: org.json.JSONException
    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

似乎運行時無法找到類JSONException,即使它顯然在構建路徑中包含的java-json.jar文件中,並且在Eclipse的“參考庫”中也存在。

我在這里可能會缺少什么?

要解決此問題,可以使用以下命令啟動應用程序:

java -cp java-json.jar -jar gateway.jar -p 1732

為了使其正常工作,您將必須將java-json.jar與導出的jar放在同一目錄中。

您可能還考慮創建一個包含所有必需類的所謂的胖子罐。 例如: http : //fjep.sourceforge.net/

如果您不想自己管理所有依賴關系的麻煩,請考慮使用Maven https://maven.apache.org/或Gradle https://gradle.org/之類的構建工具。 他們將幫助您管理所有依賴項工作,甚至可以從Internet下載所需的jar。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM