2009-06-25 17 views
5

मैं जावा में एक आरईपीएल के साथ एक खिलौना दुभाषिया लिख ​​रहा हूँ। मैं भाषा से बाइटकोड उत्पन्न करना चाहता हूं और इसे चलाने के बजाय, एएसटी की व्याख्या करने और इसके बजाए दौड़ना चाहता हूं।कुछ व्याख्या करें, और जावा में उत्पन्न बाइटकोड चलाएं?

चूंकि मेरा जावा थोड़ा जंगली है, क्या यह JVM पर फ्लाई पर उत्पन्न बाइटकोड चलाने के लिए संभव है?

उत्तर

5

आप java.lang.Classloader.defineClass() का उपयोग कर सकते हैं, जो क्लास ऑब्जेक्ट में बाइटकोड को बदल देता है। आप परिणामस्वरूप क्लास ऑब्जेक्ट पर newInstance() को कॉल कर सकते हैं, और आप जा सकते हैं।

1

जैवसिस्ट पर एक नज़र डालें जिसमें एक स्निपेट कंपाइलर है जो आपको जावा स्निपेट को बाइटकोड में संकलित करने की अनुमति देता है और उन्हें कक्षा में एक विधि के रूप में परिभाषित करता है जिसे आप तब आमंत्रित कर सकते हैं।

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