2011-07-31 26 views
5

Necesitaba usar un código java en python para reducir, así que elegí Jython. después de un tiempo, he logrado averiguar cómo ejecutar mi código, pero estoy teniendo la cosa más extraña. Cuando escribojython java.lang.NoClassDefFoundError: java.lang.NoClassDefFoundError: org/json/simple/JSONObject

from vohmm.corpus import Token; 

mayor parte del tiempo, voy a conseguir un

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

pero, cuando yo haré de nuevo (a veces después de 3 intentos) que importará la clase, falta algunos métodos, pero puedo usar la clase.

¿alguien puede resolver esto?

gracias, Eyal

Respuesta

3

Jython utiliza un mecanismo de almacenamiento en caché durante el encendido, básicamente, pasando por todos los frascos en la ruta de clases y la construcción de envolturas. Es posible que en algunos casos esa clase en particular se encuentre y envuelva, y en otros no; tal vez tenga muchos frascos y esté golpeando algún error de recursión o límite.

En cualquier caso, me aseguraré de que el jar que incluye esa clase específica esté al comienzo de su classpath, explícitamente declarado (es decir, usando -cp C: \ path \ to \ my.jar;% CLASSPATH%) , para que jython lo capte rápidamente todo el tiempo.

Esto, por supuesto, suponiendo que inicie jython de la misma manera todo el tiempo. Si ese no es el caso, verifique que los parámetros de inicio que esté utilizando, incluido el directorio de inicio, sean los mismos en todos los casos.

Cuestiones relacionadas