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

时间:2011-07-31 20:04:19

标签: java python jython

我需要在python中使用java代码来减少,所以我选择了Jython。 过了一会儿,我已经设法弄清楚如何运行我的代码,但我有最奇怪的事情。 我写的时候

from vohmm.corpus import Token;

大多数时候,我会得到一个

  

java.lang.NoClassDefFoundError:java.lang.NoClassDefFoundError:   组织/ JSON /简单/ JSONObject的

但是,当我再次这样做时(有时在3次尝试之后)它将导入该类,错过了一些方法,但我可以使用该类。

任何人都可以解决这个问题吗?

谢谢,Eyal

1 个答案:

答案 0 :(得分:3)

Jython在启动时使用缓存机制,基本上遍历类路径中的所有jar并构建包装器。在某些情况下,可能会发现并包装特定的类,而在其他情况下则不是;也许你有很多罐子,而且你会遇到一些递归错误或限制。

在任何情况下,我都要确保包含该特定类的jar位于类路径的开头,显式声明(即使用-cp C:\ path \ to \ my.jar;%CLASSPATH%),所以jython每次都会快速拿起它。

当然,假设您每次都以相同的方式启动jython。如果不是这种情况,请检查您使用的启动参数(包括起始目录)在所有情况下是否相同。