2011-07-31 60 views
5

我需要在python中使用java代碼來減少,所以我選擇了Jython。經過一段時間後,我設法弄清楚如何運行我的代碼,但我遇到了最奇怪的事情。 當我寫jython java.lang.NoClassDefFoundError:java.lang.NoClassDefFoundError:org/json/simple/JSONObject

from vohmm.corpus import Token; 

大部分的時間,我會得到一個

java.lang.NoClassDefFoundError: java.lang.NoClassDefFoundError: org/json/simple/JSONObject

,但是,當我會再次這樣做(有時後3次),將導入類,失蹤出一些方法,但我可以使用這個類。

任何人都可以弄清楚這一點嗎?在啓動時,基本上經歷所有罐子在classpath和建築包裝

感謝,的Eyal

回答

3

Jython中使用了緩存機制。在某些情況下,可能發現幷包裹了特定的類別,而在其他情況下,則可能不會;也許你有很多罐子,你正在碰到一些遞歸錯誤或限制。在任何情況下,我都要確保包含該特定類的jar在你的類路徑的開頭,顯式聲明(即使用-cp C:\ path \ to \ my.jar;%CLASSPATH%) ,所以jython會在每次都快速提取它。

這當然假設您每次都以相同的方式啓動jython。如果情況並非如此,請檢查您正在使用的啓動參數(包括啓動目錄)在所有情況下都是相同的。