2009-12-06 9 views
12

Tengo una biblioteca de clases Java (de terceros, propietaria) y quiero que mi script de python llame a sus funciones. Ya tengo el código de Java que usa esta biblioteca. ¿Cuál es la mejor manera de lograr esto?¿Cuál es la mejor manera de llamar al código Java desde Python?

+0

Duplicado: http://stackoverflow.com/questions/438594/how-to-call-java-objects-and-functions-from-cpython, http://stackoverflow.com/questions/1201628/java -wrapper-to-perl-python-code –

Respuesta

15

¿Puede ejecutar sus scripts de Python actuales bajo Jython? Si es así, esa es probablemente la mejor manera, ya que la biblioteca Java se puede exponer directamente en Jython como objetos programables.

En su defecto, hay una serie de soluciones enumeradas here.

+0

+1. Es difícil vencer a Jython como la solución aquí. –

+0

Si usa scipy y numpy, Jython puede no ser una opción. – Sney

8

La otra respuesta es JPype, que permite que CPython hable con Java. Es útil si no puedes cambiar a Jython.

3

También hay JCC que no se menciona en la página de Caltech.

Cita:

CCM es un generador de código C++ que produce una interfaz C++ objeto envolver una biblioteca de Java a través de interfaz nativa de Java (JNI). JCC también genera contenedores de C++ que se ajustan al sistema de tipo C de Python que hace que las instancias de clases Java directamente estén disponibles para un intérprete de Python.

Al generar envolturas de Python, CCM produce una extensión de Python completa a través de los distutils o setuptools paquetes.

Cuestiones relacionadas