我有一個奇怪的問題,我不明白...我有一個簡單的HelloWorld jar,我在Eclipse中建立了它,它的類路徑上有Apache Loggings
jar。我寫了一個腳本來運行jar:Java罐子和類路徑問題
#!/bin/sh
export CLASSPATH=lib/*:$CLASSPATH
java -jar HelloWorld.jar
這裏的目錄結構與HelloWorld.jar
主目錄和子目錄lib
持有commons-logging-1.1.1.jar
。
運行此腳本工作正常。然而,當我放置HelloWorld.jar
到lib
目錄(即包含在一個地方的所有JAR文件),並執行java -jar lib/HelloWorld.jar
,我得到:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
錯誤。爲什麼?!?!?!?!
我在問這是因爲我已經在OSX上使用JarBundler爲HelloWorld應用程序創建了一個應用程序包,並在MacOS
目錄中放置了一個修改過的腳本,而所有這些庫都放在了Resources/Java
目錄中。腳本的修改版本:
#!/bin/sh
RESOURCE_DIR=$(cd "../Resources"; pwd)
export CLASSPATH=$RESOURCE_DIR/Java/*:$CLASSPATH
java -jar $RESOURCE_DIR/Java/HelloWorld.jar
,我得到同樣的錯誤如上我會很感激理解爲什麼我不能做到這一點和/或如何解決它的任何幫助嗎?
進入你的類路徑* –