![](/img/trans.png)
[英]NoclassDefFoundError exception when running bat file with external jar
[英]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.