2010-06-08 8 views
10

से जावा क्लास का उपयोग करके मुझे कुछ जावा कक्षाओं में निहित तर्क का उपयोग करने की आवश्यकता है। मैंने जेएनआई पाया, लेकिन वह परियोजना हाल ही में अपडेट नहीं हुई है।डेल्फी

क्या डेल्फी मूल आवेदन में इसका उपयोग करने का कोई तरीका है? मैं डेल्फी 200 9 का उपयोग करता हूं।

+0

लगभग कितना स्रोत कोड? जावा से पास्कल व्यवहार्य अनुवाद है? यदि ऐसा है, तो यह बेहतर हो सकता है। –

+0

यह चिकित्सा इमेजिंग जावा कक्षाओं के लिए है, मैं वास्तव में बग डालने का जोखिम नहीं उठाऊंगा। निश्चित रूप से डेल्फी कक्षाएं सबसे अच्छा समाधान होगा, लेकिन दुर्भाग्य से वहां नहीं हैं। डीआईसीओएम डेल्फी कक्षाएं हैं, लेकिन मुझे जो चाहिए वह उनकी विशेषज्ञता है (डीआईसीओएम-आरटी), और वे डेल्फी के लिए मौजूद नहीं हैं (कम से कम मुझे कार्यान्वयन नहीं मिला)। – LaBracca

उत्तर

4

जेएनआई की तुलना में एक नया समाधान JNA है, जो (डेल्फी) डीएलएल से कॉलबैक का भी समर्थन करता है। मुझे इसका उपयोग करना आसान लगता है।

+1

लेकिन क्या जेएनए जावा कक्षाओं को कॉल करने का समर्थन करता है या केवल जावा को "मूल चीजों का उपभोग" करने की इजाजत देता है? – LaBracca

+0

एक उदाहरण के लिए https://jna.dev.java.net/#callbacks देखें जहां देशी डीएलएल जावा क्लास में सभी मूल विंडोज़ को गिनने के लिए एक विधि कॉल करता है। इसे मौजूदा विधियों के साथ संवाद करने के लिए डेल्फी डीएलएल द्वारा उपयोग की जाने वाली विधियों को पंजीकृत करने के लिए बढ़ाया जा सकता है। – mjn

+1

@ एमजेएन जेएनए मुख्य रूप से जावा के लिए कुछ मूल कोड कॉल करने के लिए है और कुछ प्रदर्शन pernalties के साथ, पहली जगह जावा प्रक्रिया शुरू करने की आवश्यकता है। ओपी सवाल के मुताबिक जेएनए सबसे अच्छा विकल्प नहीं हो सकता है। –

-2

मुझे बहुत संदेह है। डेल्फी कोड निष्पादन योग्य में संकलित हो जाता है जबकि जावा कोड वर्चुअल मशीन द्वारा निष्पादित किया जाता है। तो जब तक आप डेल्फी कोड के अंदर एक पूर्ण वर्चुअल मशीन लॉन्च नहीं करते हैं, तो मुझे आसानी से तर्क शामिल करने का कोई तरीका नहीं दिखता है।

+0

आपको केवल एक बार वर्चुअल मशीन लॉन्च करने की आवश्यकता है, और एकाधिक कॉल करें। –

3

आप j-interop को आजमा सकते हैं। जिस तकनीक को मुझे अपनाना चाहिए वह जावा व्यापार तर्क का एक COM wrapper बनाना है, और इस COM सर्वर का उपयोग डेल्फी थ्रू इंटरऑपरेबिलिटी से करना है।

डेल्फी एक COM सर्वर की एक प्रकार की लाइब्रेरी बना सकता है, और आप इस टाइपलाइनर का उपयोग कर कॉम सर्वर को निष्क्रिय कर सकते हैं। टाइप लाइब्रेरी बस सर्वर का एक रैपर है, जो डेल्फी कोड द्वारा उपयोग किए जाने वाले इंटरफेस को उजागर करता है।

विभिन्न प्लेटफ़ॉर्म सॉफ़्टवेयर के साथ संवाद करने की कुंजी को "इंटरऑपरेबिलिटी" कहा जाता है।

आप इसे .NET बनाम Win32 में भी पा सकते हैं। टिपली डेल्फी कोड Win32 (exe या dll) है, और आप इंटरऑपरेबिलिटी समाधानों का उपयोग करके डेल्फी ऑब्जेक्ट्स और .NET असेंबली या जावा बाइटकोड के बीच संचार प्रोटोकॉल बना सकते हैं।

2

जावा 6 के साथ, स्टैंडअलोन वेब सेवा सर्वर लिखने के लिए कोड की केवल कुछ पंक्तियां होती हैं जिन्हें बाद में डेल्फी से बुलाया जा सकता है।

छोटा कदम-दर-कदम ट्यूटोरियल, नि: शुल्क NetBeans आईडीई और का उपयोग कर डेल्फी:

अधिक xamples:

0

डेल्फी (JNI) या JNA और पूरी तरह से पक्षपाती जवाब के लिए जावा मूल निवासी इंटरफ़ेस के लिए एक विकल्प के रूप में, Java for Delphi दृढ़ता से कोड है, जहां त्रुटियों पर पाया जा सकता है टाइप का उपयोग कर, वस्तु उन्मुख स्तर पर interoperate करने के लिए जावा और डेल्फी अनुप्रयोगों को सक्षम रनटाइम के बजाय समय संकलित करें।

+1

आपका उत्तर पोस्ट करने के लिए धन्यवाद! कृपया सावधानीपूर्वक [स्व-संवर्धन पर अक्सर पूछे जाने वाले प्रश्न] (http://stackoverflow.com/faq#promotion) को पढ़ना सुनिश्चित करें। यह भी ध्यान रखें कि यह * आवश्यक * है कि जब भी आप अपनी साइट/उत्पाद से लिंक करते हैं तो आप एक अस्वीकरण पोस्ट करते हैं। –