Toutes mes excuses pour ressusciter le fil, mais je pense avoir une meilleure réponse :-)
Vous pouvez également utiliser Py4J qui comporte deux parties: une bibliothèque qui s'exécute dans CPython (ou n'importe quel interpréteur Python d'ailleurs) et une bibliothèque qui s'exécute sur la machine virtuelle Java que vous voulez appeler.
Il y a un exemple sur la frontpage et beaucoup de documentation, mais essentiellement, vous suffit d'appeler des méthodes Java à partir de votre code python comme si elles étaient des méthodes de python:
>>> from py4j.java_gateway import JavaGateway
>>> gateway = JavaGateway() # connect to the JVM
>>> java_object = gateway.jvm.mypackage.MyClass() # invoke constructor
>>> other_object = java_object.doThat()
>>> other_object.doThis(1,'abc')
>>> gateway.jvm.java.lang.System.out.println('Hello World!') # call a static method
La communication se fait par des prises au lieu de JNI.
Disclaimer: Je suis l'auteur de Py4J
Les liens vont à une version désuète. Trouvez le bon ici: https://pypi.python.org/pypi/JPype1 https://github.com/originell/jpype et les documents ici: https://jpype.readthedocs.io/en/latest/ – bastian