"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जावा को C++ अनुप्रयोगों में कैसे एकीकृत करें: क्या आप जावा कोड को तुरंत चला सकते हैं?

जावा को C++ अनुप्रयोगों में कैसे एकीकृत करें: क्या आप जावा कोड को तुरंत चला सकते हैं?

2024-11-07 को प्रकाशित
ब्राउज़ करें:938

How to Integrate Java into C   Applications: Can You Run Java Code on the Fly?

जावा को सी अनुप्रयोगों में एकीकृत करना

सी एप्लिकेशन की कार्यक्षमता बढ़ाने के लिए, जावा घटक को शामिल करना वांछनीय हो सकता है। हालांकि यह पायथन के साथ हासिल किया गया है, ऐसा लगता है कि जावा एकीकरण के लिए कोई स्पष्ट समाधान नहीं है।

सी से जेएनआई और जावा क्लास का उपयोग

Java Native इंटरफ़ेस (जेएनआई) एक संभावित समाधान है, लेकिन यह आमतौर पर जावा कक्षाओं का उपयोग करते हुए एक पूर्ण जावा प्रोग्राम मानता है। हालाँकि, इस मामले के लिए, लक्ष्य सी एप्लिकेशन के भीतर से जावा कक्षाओं का उपयोग करना है। और जेएनआई या एक समान तंत्र का उपयोग करके रनटाइम के दौरान जावा कोड निष्पादित करना (एक स्क्रिप्टिंग भाषा की तरह)।

उदाहरण जावा कोड

import c4d.documents.*; कक्षा मुख्य { सार्वजनिक स्थैतिक शून्य मुख्य() { BaseDocument दस्तावेज़ = GetActiveDocument(); बेसऑब्जेक्ट ऑप = doc.GetActiveObject(); यदि (ऑप! = शून्य) { ऑप.निकालें(); } } }

समाधान: एंबेडेड जेवीएम

import c4d.documents.*;

class Main {
  public static void main() {
    BaseDocument doc = GetActiveDocument();
    BaseObject op = doc.GetActiveObject();
    if (op != null) {
      op.Remove();
    }
  }
}

को शामिल करना और JVM तर्कों को प्रारंभ करना (JavaVM और JNIEnv)

JNI_CreateJavaVM() को कॉल करके JVM को प्रारंभ करना

का उपयोग करना JNI जावा विधियों को लागू करने के लिए (जैसे, jclass, jmethodID, और jmethod)
  • JNI_DestroyJavaVM() का उपयोग करके JVM को नष्ट करना
  • यह अधिक परिष्कृत संचालन की अनुमति देता है, जैसे कि कस्टम क्लास लोडर, सी एप्लिकेशन में जावा क्षमताओं का आवश्यक एकीकरण प्रदान करना।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3