यहाँ कुछ मामलों में जहां मैं इसे का उपयोग किया है रहे हैं।
1) जावा स्क्रिप्टिंग भाषा को कॉल करना चाहता है, उदाहरण 1. मेरे पास एक जावा ऐप है जो डब्लूएमडी जावास्क्रिप्ट विजेट के माध्यम से उपयोगकर्ता टिप्पणियों को स्वीकार करता है। (एक ही विजेट है कि StackOverflow का उपयोग करता है, वास्तव में।) उपयोगकर्ता Markdown प्रारूप में टिप्पणी में प्रवेश करती है और एक JavaScript लाइब्रेरी तसलीम बुलाया दो स्थानों पर HTML में बदल देता है: (1) ग्राहक पर, वास्तविक समय पूर्वावलोकन समर्थन करने के लिए; और (2) सर्वर पर है, क्योंकि मैं चाहता हूँ शुद्ध Markdown सर्वर से भेजने के लिए ग्राहक और स्टोर (बजाय किसी भी तरह Markdown में HTML उल्टा करने के लिए होने की) है कि वहाँ बहुत उपयोगकर्ता बाद में Markdown संपादित कर सकते हैं। सर्वर पर टिप्पणी संग्रहीत करते समय, मैं वहां रूपांतरण भी चलाता हूं, और मैं मार्कडाउन के साथ HTML को संग्रहीत करता हूं इसलिए टिप्पणी सूची प्रदर्शित करते समय मुझे गतिशील रूप से मार्कडाउन को परिवर्तित करने की आवश्यकता नहीं होती है। यह सुनिश्चित करने के लिए कि सर्वर पर HTML क्लाइंट पर HTML से मेल खाता है, मैं सटीक उसी शोडाउन लाइब्रेरी का उपयोग करना चाहता हूं। इसलिए मैं राइनो जावास्क्रिप्ट इंजन के अंदर शोडाउन सर्वर-साइड चलाता हूं।
2) जावा पटकथा भाषा, उदाहरण 2. मैं एक तैनाती स्वचालन अनुप्रयोग है कि इस तरह के डेवलपर्स, sysadmins के रूप में अलग-अलग भूमिकाओं भर में हितधारकों, शामिल है और जारी इंजीनियरों पर काम कर रहा हूँ कॉल करने के लिए चाहता है। संपूर्ण ऐप्लिकेशन (कार्यप्रवाह और यूआई) एक जावा अनुप्रयोग है, लेकिन विभिन्न स्थानों पर यह इस तरह, संकुल धक्का विन्यास की पुष्टि करने, संकुल, धूम्रपान परीक्षण, आदि स्थापित करने के लिए के रूप में विभिन्न लिपियों (जैसे रूबी, बैश), कॉल यह आंशिक रूप से, क्योंकि स्क्रिप्ट है निर्देशिका निर्माण, प्रतिलिपि बनाना, आगे बढ़ना, wgetting, आदि व्यक्त करने के लिए बेहतर/अधिक किफायती है, और आंशिक रूप से क्योंकि जिन लोगों के पास पाई के उस विशेष टुकड़े हैं, वे जानते हैं कि स्क्रिप्टिंग भाषाओं के साथ कैसे काम करना है, लेकिन जावा नहीं। इसलिए हम जावा की स्क्रिप्टिंग एपीआई का उपयोग करके यहां स्क्रिप्ट्स का आह्वान करते हैं। इस मामले में हम जावा के बाहर स्क्रिप्ट निष्पादित कर सकते हैं लेकिन नीचे # 3 देखें।
3) स्क्रिप्टिंग भाषा जावा फोन करना चाहता है। उपरोक्त तैनाती आवेदन में, हमारे पास वेब-आधारित परिनियोजन लॉग हैं, और हमने तैनाती लॉग को यथासंभव पढ़ने और समझने में आसान बनाने के लिए बहुत प्रयास किए हैं, क्योंकि एक बड़ा डेवलपर/एसक्यूए/रिलीज इंजीनियर जनसंख्या लॉग का उपभोग करती है, और हर कोई एक तैनाती के साथ वास्तव में क्या चल रहा है के सभी विवरण समझता है। सुंदर मुद्रण और रंग-कोडिंग दृष्टिकोण का हिस्सा हैं। हमने जावा में एक सुंदर प्रिंटिंग परिनियोजन लॉग एपीआई लागू की है, लेकिन हम स्क्रिप्ट को कॉल करने में सक्षम होना चाहते हैं। तो उदाहरण के लिए जब रूबी पुश स्क्रिप्ट चलती है, तो हम चाहते हैं कि यह सुंदर-प्रिंटर पर अपनी प्रगति लॉग करे। JRuby के अंदर रूबी चलाना रूबी स्क्रिप्ट को जावा सुंदर-प्रिंटर API देखने की अनुमति देता है।
स्रोत
2011-03-29 17:53:37
नोट: इस बात की कोई गारंटी नहीं है कि किसी भी इंजन को JVM के साथ बंडल किया जाएगा; इसलिए आपको अपने आवेदन के हिस्से के रूप में अपना खुद का लाने की जरूरत है। –