2011-07-31 5 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回の試行後)、それはクラスをインポートします、不足しているを取得しますいくつかのメソッドがありますが、クラスを使用することができます。

これはどれですか?起動時

おかげで、エヤル

答えて

3

Jythonのは、基本的には、あなたのクラスパスや建物のラッパー内のすべてのjarファイルを通過、キャッシュメカニズムを使用しています。場合によっては、特定のクラスが見つけられ、ラップされている可能性があります。おそらく、あなたはたくさんのジャーを持っていて、あなたはいくつかの再帰のバグや制限を打っています。

いずれの場合でも、特定のクラスを含むjarが明示的に宣言されている(つまり、-cp C:¥path¥to¥my.jar;%CLASSPATH%)クラスパスの先頭にあることを確認したいと思います。 jythonが毎回すぐにそれを取得するようにします。

これはもちろん、毎回同じ方法でjythonを起動すると仮定します。そうでない場合は、使用している起動パラメータ(起動ディレクトリを含む)がすべての場合で同じであることを確認してください。