2012-01-19 12 views
5

मैं एक जावा आवेदन किया है और इसके अंदर आदमख़ोर इंटरफेस करना चाहते हैं। विशेष रूप से राक्षस जो वस्तुओं जटिल सी के ++ बहुत सारे है अंदर था.मैं कई विकल्प इसजावा एप्लिकेशन में ओग्रे (सी ++) के साथ इंटरफेसिंग के लिए सबसे अच्छा तरीका क्या है?

1.) का प्रयोग करें कच्चा JNI पूरा करने के लिए मिल गया है एक 3 डी खेल इंजन पुस्तकालय है (JNI के रूप में कठिन काफी जटिल है)

2 ।) SWIG + JNI का उपयोग करें (कुछ हद तक सरल ... लेकिन अभी भी जेएनआई शामिल है)

3.) लुआ और नो जेएनआई का उपयोग करें (ओगुरे के लिए लुआ बाध्यकारी का उपयोग करें) ... मूल रूप से लुआ का उपयोग करने में मदद करता है क्योंकि सी ++ lib का इंटरफेस करना लुआ बहुत आसान है और जावा से लुआ को फोन करना बहुत मुश्किल नहीं होगा।

4.) का प्रयोग करें Ogre4j (एक जावा JNI का उपयोग कर राक्षस के लिए बाध्य है ... लेकिन इस परियोजना नहीं है तो नवीनतम आदमख़ोर संस्करण के साथ अद्यतन)

इनमें से कौन सा/मन भविष्य रखरखाव में सबसे अच्छा विकल्प रखते हुए की तरह लग रहा/ओग्रे के उन्नयन?

विकल्प नहीं 3 आज़माने के लिए सार्थक है? JNA https://github.com/twall/jna, एक पूर्व java.net परियोजना:

+0

तुम क्यों जावा से राक्षस का उपयोग करना चाहते हैं? जावा गेम इंजन क्यों नहीं ढूंढते हैं, या सी ++ में अपना ऐप लिखते हैं? – jalf

उत्तर

3

मैं एक 5 वीं विकल्प सुझाव देना चाहते हैं।

मेरे तर्क: विकल्प 1 और 2, बहुत कम स्तर पर हैं 3 imho प्रायोगिक है (यदि आप "जटिल सी ++ वस्तुओं के बहुत सारे" का उल्लेख किया है), और 4 नंबर निश्चित रूप से अपडेट का अभाव है। जेएनए अभी भी बनाए रखा है, ओपन सोर्स (एलजीपीएल), दस्तावेज और क्रॉस-प्लेटफॉर्म (हालांकि दस्तावेज़/उदाहरण विपरीत सुझाव दे सकते हैं)।

अद्यतन: BridJ http://code.google.com/p/bridj/:
मैं एक 6 विकल्प है, जो "inspired by JNA" है के बारे में सुना है। FAQ और Wiki अच्छी तरह से मतभेद और उसके पीछे के तर्कों की व्याख्या। ब्रिज सक्रिय और खुला स्रोत (बीएसडी और अपाचे लाइसेंस) है।

0

शायद हम जावा कोड उत्पन्न करने के लिए एक्सबीआईजी का उपयोग कर सकते हैं, जैसे ogre4j do। असल में, एक्सबीआईजी स्रोत कोड में ogre4j स्रोत कोड उत्पन्न करने के लिए एक परीक्षण है, और यह उस काम को करने के लिए डिज़ाइन किया गया है।

संबंधित मुद्दे

 संबंधित मुद्दे