SORU
6 EYLÜL 2010, PAZARTESİ


Arama Python, Java

Python, java aramak için en iyi yolu nedir? (jython ve RPC benim için bir seçenek değil).

KİK duymuştum: http://pypi.python.org/pypi/JCC/1.9 C /Java çağırmak için C kodu jeneratör Python Ama bu her olası arama derleme gerektirir; başka bir çözümü tercih ederim.

JPype haberim var: http://jpype.sourceforge.net/ öğretici: http://www.slideshare.net/onyame/mixing-python-and-java

import jpype 
jpype.startJVM(path to jvm.dll, "-ea") 
javaPackage = jpype.JPackage("JavaPackageName") 
javaClass = javaPackage.JavaClassName 
javaObject = javaClass() 
javaObject.JavaMethodName() 
jpype.shutdownJVM() 

Bu tam ihtiyacım olan şey gibi görünüyor. Ancak, son sürümü Ocak 2009'dan ve insanlar JPype derlemek için başarısız görüyorum.

JPype ölü bir proje mi?

Başka bir alternatif var mı?

Saygılar, David

CEVAP
25 EYLÜL 2010, CUMARTESİ


Ayrıca Py4J kullanabilirsiniz. Birinci sayfasında ve belgeleri bir sürü örnek var, ama aslında, sadece eğer python yöntemleri gibi python kodunuzu Java yöntemleri arama:

>>> 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

Karşıt olarak Jython, bir kısmı Py4J çalışır Python VM bu yüzden her zaman "güncel" son sürümü ile Python ve kullanabilirsiniz kütüphaneler olmayan çalıştırın iyi Jython (örneğin, lxml). Diğer parçası aramak istediğiniz Java VM içinde çalışır.

İletişim JNI yerine yuva yapılır ve Py4J kendi protokolü (bellek yönetmek için bazı durumlarda, en iyi duruma getirmek için vb.)

Yasal Uyarı: Py4J yazarı değilim

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FlippinWindows | #1 Windows Tutorial Channel!

    FlippinWindo

    23 Mayıs 2010
  • Phlearn Photoshop and Photography Tutorials

    Phlearn Phot

    11 EKİM 2011
  • TheDigiCraft

    TheDigiCraft

    25 NİSAN 2011