2012-06-16 5 views
6

से गैर देशी जावा कोड पर कॉल करें मैं कुछ तरीकों को कॉल करने में सक्षम होना चाहता हूं और ऐसे में जावा जार में निहित हैं जो पहले से चल रहा है (यह गारंटी है कि यह चल रहा है)। मुझे ज्योथन जैसी चीजें मिली हैं, लेकिन वे केवल जावा के मूल वर्गों और इस तरह तक पहुंचने में सक्षम हैं।पायथन

+0

कैसे आप जैसे से यह करने के लिए सक्षम होने की अपेक्षा करते हैं जावा? –

उत्तर

3

चेक बाहर इस:। Calling Java from Python

"तुम भी Py4J इस्तेमाल कर सकते हैं मुखपृष्ठ और प्रलेखन के बहुत सारे पर एक उदाहरण है, लेकिन अनिवार्य रूप से, आप बस अपने अजगर कोड से जावा तरीकों फोन रूप में यदि वे थे अजगर तरीके:

from py4j.java_gateway import JavaGateway 

प्रवेश द्वार = JavaGatew ay() # JVM से कनेक्ट

java_object = gateway.jvm.mypackage.MyClass() # आह्वान निर्माता

other_object = java_object.doThat()

other_object.doThis (1, 'एबीसी')

gateway.jvm.java.lang.System.out.println ('नमस्ते दुनिया!') # एक स्थिर विधि

कॉल

ज्योथन के विपरीत, पायथन जेएम में पीई 4 जे का एक हिस्सा चलता है, इसलिए यह हमेशा पाइथन के नवीनतम संस्करण के साथ "अद्यतित" होता है और आप उन पुस्तकालयों का उपयोग कर सकते हैं जो ज्योथन (उदा।, एलएक्सएमएल) पर अच्छी तरह से नहीं चलते हैं। दूसरा भाग जावा वीएम में चलता है जिसे आप कॉल करना चाहते हैं।

संचार JNI के बजाय सॉकेट के माध्यम से किया जाता है और Py4J अपने स्वयं के प्रोटोकॉल (कुछ मामलों अनुकूलन करने के लिए, स्मृति प्रबंधन करने के लिए, आदि) है "

+2

पीई 4 जे वेबसाइट से: "ध्यान दें कि उपरोक्त पायथन कोड निष्पादित करने से पहले जावा प्रोग्राम शुरू होना चाहिए। दूसरे शब्दों में, पीई 4 जे एक जेवीएम शुरू नहीं करता है। "---- अपनी वेबसाइट पर यहां जाएं: http://py4j.sourceforge.net/index.html – tabchas