मुझे आपका प्रश्न बिल्कुल समझ में नहीं आता है। आप दो पूरी तरह से अलग अमूर्त स्तरों को मिलाते हुए प्रतीत होते हैं: रुबी एक प्रोग्रामिंग भाषा है, जेआरबी रूबी प्रोग्रामिंग भाषा के लिए एक कंपाइलर है। प्रश्न यह है कि आपका प्रोग्राम रूबी या जेआरबी में चल रहा है, सिर्फ सादा नहीं समझता है: जब यह जेआरबी में चल रहा है, तो रूबी में चल रहा है, क्योंकि जेआरबी रूबी का कार्यान्वयन है।
यह पूछने जैसा ही है "मैं कैसे बता सकता हूं कि मैं एक कार बनाम एक कार में गाड़ी चला रहा हूं?"
यदि आप जानना चाहते हैं कि आप किस रूबी कार्यान्वयन में चल रहे हैं, तो आप वैश्विक RUBY_ENGINE
निरंतर जांच सकते हैं।
कुछ इंजन पर
- यह नहीं आप क्या इंजन उस पर चल रहा है बताओ, उदाहरण के लिए,: यह, हालांकि यह दुर्भाग्य से तीन कारणों से विफल रहता है सार्वभौमिक और विशिष्ट रूप से इंजन आप पर चल रहे हैं की पहचान माना जाता है YARV पर मैं
RUBY_ENGINE
'yarv'
होने की अपेक्षा करता हूं, लेकिन यह वास्तव में 'ruby'
है। तो, यह "पहचान" भाग में विफल रहता है।
- भी बदतर: एमआरआई पर, यह भी
'ruby'
है, जिसका मतलब है कि न केवल यह आपको बता नहीं पड़ता कि इंजन आप पर चल रहे हैं, लेकिन वहां भी पूरी तरह से अलग इंजन है कि वापसी ही मूल्य। IOW, यह "अद्वितीय" भाग में भी विफल रहता है।
- और अंतिम लेकिन कम से कम नहीं,
RUBY_ENGINE
काफी नया है, इसलिए यह अभी तक सभी इंजनों द्वारा समर्थित नहीं है, जिसका अर्थ यह है कि यह "सार्वभौमिक" भाग में विफल रहता है।
फिर भी, अपने उद्देश्यों के लिए
if defined? RUBY_ENGINE && RUBY_ENGINE == 'jruby'
की तरह कुछ ठीक काम करना चाहिए।
स्रोत
2009-08-29 12:14:31
हाँ। यह JRuby के तहत "जावा" और अंतर्निहित ओएस कहीं और है। वास्तव में – Chuck
। मेरे लिए काफी अच्छा। आपका बहुत बहुत धन्यवाद! – pastorius
@Chuck: सत्यापन के लिए धन्यवाद। मेरे पास JRuby इंस्टॉल आसान नहीं था। – JesperE