Clase de JPype no encontrada

JPype es un proyecto increíble, ya que permite crear una instancia de JVM directamente desde Python .

Lamentablemente, me quedé atascado en los primeros pasos de bebé.

Tengo el código fuente de A.java ( located in C:\tmp folder ):

 class A { public A() { super(); } public String sayHi() { return("Hello"); } } 

El cual fue comstackdo a una clase, usando: javac A.java

Por lo tanto, A.class se encuentra en la carpeta C:\tmp .

Tengo el siguiente código fuente de Python :

 import os import jpype jpype.startJVM(jpype.getDefaultJVMPath(), '-ea', '-Djava.class.path=c:\\tmp') A = jpype.JClass("A") a = A() print a.sayHi() jpype.shutdownJVM() 

Cuando lo ejecuto, me sale el siguiente error:

 C:\tmp>jpype_test.py Traceback (most recent call last): File "C:\tmp\jpype_test.py", line 10, in  A = jpype.JClass("A") File "C:\Python27\lib\site-packages\jpype\_jclass.py", line 54, in JClass raise _RUNTIMEEXCEPTION.PYEXC("Class %s not found" % name) jpype._jexception.ExceptionPyRaisable: java.lang.Exception: Class A not found 

Como no puedo encontrar la clase A, es probable que sea un problema relacionado con CLASSPATH, pero no puedo darme cuenta de lo que estoy haciendo mal.

¿Alguna pista?

EDITAR 1:

El problema persiste. Pero, solo para agregar a mi pregunta, si uso las bibliotecas nativas de Java, como: java.util, el código se ejecuta SIN errores. Por ejemplo, el siguiente código funciona:

 import jpype jpype.startJVM(jpype.getDefaultJVMPath()) util = jpype.JPackage("java.util") al = util.ArrayList() al.add(1) al.add(2) print al.size() jpype.shutdownJVM() 

Y devuelve 2.

EDIT 2:

Problema resuelto, ver respuesta abajo …

Resolví el problema y dejaría la respuesta aquí para los registros.

1) Nada de malo en el código fuente.

2) El problema fue que mi Python era de 32 bits y mi java sdk (incluido el comstackdor de bytecode javac) era de 64 bits. Desinstalé el java sdk y reinstalé una versión de 32 bits. ¡Hecho! Resuelto

Intenta cambiar tu camino de esta manera:

  jpype.startJVM(jpype.getDefaultJVMPath(), '-ea', '-Djava.class.path=c:\\tmp\')