2009-11-27 75 views
2

每次我嘗試運行我的項目的NoClassDefFoundError,我收到以下錯誤消息:在線程谷歌應用程序引擎:在運行

異常「主要」 java.lang.NoClassDefFoundError:COM /谷歌/ AppEngine上/工具/ util/Logging at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:82)

可能是什麼問題?我已經嘗試重新安裝Eclipse並重新配置構建路徑幾次,但無濟於事。

謝謝!

+0

是這種情況發生在本地計算機上,或者應用程序引擎服務器場中?我的本地機器上的 – 2009-11-27 23:44:56

+0

。 – Kee 2009-11-28 05:33:25

+0

@Peter Recore每次我添加一個庫時,我都會遇到同樣的問題。你解決了這個問題嗎? – 2011-04-16 15:00:04

回答

0

嘗試通過dev_server script手動運行構建(war目錄)以確定它是Eclipse問題還是一般類路徑問題(即您缺少所需的JAR)。

+0

我遇到了同樣的問題,並且運行dev_server腳本產生了與通過Eclipse運行它相同的結果。看起來奇怪的是,如果我缺少一個必需的JAR,那麼項目編譯就好了 - 是否有某種方式可以解決用於構建的一組JAR與用於運行的一組JAR之間的差異?我將如何調試? – Arkaaito 2011-09-18 21:59:02

+0

當程序編譯時,它只需要在類路徑中有必要的JAR來解析符號進行編譯。它不需要運行時執行的所有JAR。例如,如果你的類在A.jar中使用了A,並且A在B.jar中使用了B類,那麼你只需要在類路徑上使用A.jar來編譯你的類。然而在運行時你需要A.jar和B.jar。這就是爲什麼你的代碼編譯OK,但是你在運行時得到了ClassNotFoundException。 – kierans 2011-10-11 22:56:27

+0

我已經上傳了一個findclass bash腳本,您可以使用它來爲給定的類搜索JAR的目錄。使用它來查找包含缺少的類的JAR,然後查看該JAR是否正確地位於類路徑中。 https://docs.google.com/leaf?id=0B6Kxr521e8HxZjlhM2EzMzYtYjdjZS00YWM3LWI2YmEtNzcwM2ZiMzliNDBi&hl=zh_CN – kierans 2011-10-11 23:01:56

0

請參閱ClassNotFoundException using Google App Engine for Java - 至少有一個導致此行爲的原因在此處標識。事實證明,無論您的類路徑中是否有正確的路徑 - 它們必須直接在war/WEB-INF/lib下,JAR可能不會在之間位於war/WEB-INF/lib的任何子目錄下。

(注:如果你發現解決您的問題,記得要給予好評的是紳士的答案,不是我的答案在這裏)

+0

如何做到這一點?我繼承了intellij中的maven項目構建,並且我完全不知道maven whatsever或war文件。 – Roel 2015-09-04 14:33:56