Eya*_*and 5 python java jython
我需要在python中使用java代码来减少,所以我选择了Jython.过了一会儿,我已经设法弄清楚如何运行我的代码,但我有最奇怪的事情.当我写作
from vohmm.corpus import Token;
Run Code Online (Sandbox Code Playgroud)
大多数时候,我会得到一个
java.lang.NoClassDefFoundError:java.lang.NoClassDefFoundError:org/json/simple/JSONObject
但是,当我再次这样做时(有时在3次尝试之后)它将导入类,错过了一些方法,但我能够使用该类.
谁能搞清楚这一点?
谢谢,Eyal
Jython 在启动时使用缓存机制,基本上会遍历类路径中的所有 jar 并构建包装器。在某些情况下,可能会找到并包装特定的类,而在其他情况下则不会;也许你有很多罐子,并且遇到了一些递归错误或限制。
在任何情况下,我都会确保包含该特定类的 jar 位于类路径的开头,并显式声明(即使用 -cp C:\path\to\my.jar;%CLASSPATH% ),以便 jython每次都会很快拿起它。
当然,这是假设您每次都以相同的方式启动 jython。如果情况并非如此,请检查您正在使用的启动参数(包括起始目录)在所有情况下是否相同。