Java Academy · पाठ

Native Image बनाना

Ahead-of-time compilation

पाठ 2, कुल 4 में से13 चरण

Native Image बनाना, CoddyKit पर Java Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Java Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Java Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

नेटिव इमेज बनाना

native-image उपकरण संकलित Java बाइटकोड को एकल, स्व-निहित नेटिव निष्पादन फ़ाइल में बदलता है। इस पाठ में निर्माण प्रक्रिया, पर्दे के पीछे होने वाली गतिविधियाँ और परिणाम को चलाने का तरीका बताया गया है।

साधारण Java से शुरुआत करें

नेटिव इमेज की शुरुआत सामान्य रूप से संकलित वर्गों से होती है। यहाँ एक साधारण कार्यक्रम है, जिसे हम नेटिव कोड में संकलित करने की कल्पना करेंगे।

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello from a native binary!");
    }
}

संकलित करें, फिर बनाएँ

दो चरण हैं: पहले javac Hello.java से Hello.class बनता है; फिर native-image Hello से hello नाम की निष्पादन फ़ाइल बनती है। निर्माण, संकलन से बहुत धीमा होता है क्योंकि यह पूरे कार्यक्रम का विश्लेषण करता है।

बंद-विश्व विश्लेषण

native-image बंद-विश्व विश्लेषण करता है: उसे ऐसा समस्त कोड दिखाई देना चाहिए जो कभी भी चल सकता है। main से शुरू करके यह पहुँच योग्य हर विधि पर चलता है और केवल उन्हीं को द्विआधारी फ़ाइल में शामिल करता है। जो कुछ पहुँच योग्य नहीं है, उसे हटा दिया जाता है (लिंक-समय पर मृत-कोड निष्कासन)।

पहले से किया गया संकलन

पहुँच योग्य विधियों को पहले से नेटिव मशीन कोड में संकलित किया जाता है। चूँकि व्याख्या करने के लिए कोई बाइटकोड और जस्ट-इन-टाइम संकलक नहीं बचता, इसलिए वार्मअप भी नहीं होता — कार्यक्रम अपने पहले निर्देश से ही पूरी गति पर चलता है।

निर्माण-समय पर प्रारंभकरण

तेज़ी से शुरू करने के लिए native-image स्थैतिक प्रारंभकर्ताओं को निर्माण-समय पर चला सकता है और परिणामी हीप को इमेज में शामिल कर सकता है (इमेज हीप)। इसका अर्थ है कि कार्यक्रम शुरू होते ही कुछ ऑब्जेक्ट पहले से मौजूद होते हैं।

निष्पादन फ़ाइल चलाना

आउटपुट एक सामान्य OS निष्पादन फ़ाइल होता है। इसे सीधे चलाया जाता है — java -jar की आवश्यकता नहीं होती और लक्ष्य मशीन पर JVM स्थापित करना भी ज़रूरी नहीं होता। विकल्पों के आधार पर यह पूरी तरह या अधिकांशतः स्थैतिक भी हो सकता है।

सामान्य निर्माण विकल्प

उपयोगी विकल्पों में शामिल हैं:

  • -o name — आउटपुट फ़ाइल का नाम।
  • --no-fallback — JVM पर निर्भर वैकल्पिक इमेज बनाने के बजाय विफल हो जाएँ।
  • -O2 / -O3 — अनुकूलन स्तर।
  • --static — पूरी तरह स्थैतिक रूप से लिंक की गई द्विआधारी फ़ाइल (Linux)।

मेमोरी और डिस्क

निर्माण प्रक्रिया में स्वयं बहुत अधिक मेमोरी लगती है — बड़े अनुप्रयोगों को कई गीगाबाइट RAM और कई मिनट का CPU समय चाहिए हो सकता है। यह लागत निर्माण-समय पर एक बार चुकाई जाती है और इसके बदले रनटाइम की शुरुआत तेज़ तथा सस्ती होती है।

Maven/Gradle के माध्यम से निर्माण

वास्तविक परियोजनाओं में आप शायद ही कभी native-image को हाथ से चलाते हैं। GraalVM के नेटिव-बिल्ड-टूल्स प्लगइन इसे Maven (native:compile) और Gradle (nativeCompile) में एकीकृत करते हैं, ताकि द्विआधारी फ़ाइल आपके सामान्य निर्माण-प्रवाह का हिस्सा बन जाए।

शुरुआत का सत्यापन करें

निर्माण के बाद शुरुआत के समय की तुलना करें: java -jar से शुरू होने में सैकड़ों मिलीसेकंड लग सकते हैं, जबकि नेटिव द्विआधारी फ़ाइल एकल-अंकीय मिलीसेकंड में परिणाम दे सकती है। इस अंतर को मापना ही नेटिव रूप अपनाने का मुख्य उद्देश्य है।

त्वरित जाँच

नेटिव इमेज बनाने की अपनी समझ का परीक्षण करें।

पुनरावलोकन

आपने native-image का निर्माण सीखा:

  • संकलित बाइटकोड से शुरुआत करें; native-image एक स्व-निहित निष्पादन फ़ाइल बनाता है।
  • बंद-विश्व विश्लेषण main से पहुँच योग्य सभी कोड खोजता है।
  • पहुँच योग्य कोड को AOT-संकलित किया जाता है; पहुँच से बाहर कोड हटा दिया जाता है।
  • निर्माण-समय प्रारंभकरण तेज़ शुरुआत के लिए इमेज हीप को पहले से शामिल करता है।
  • निर्माण धीमा और बहुत अधिक मेमोरी वाला होता है; इसे Maven/Gradle प्लगइन के माध्यम से एकीकृत करें।
शुरुआत निःशुल्क

एआई शिक्षक के साथ Java सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
104
पाठ
374

अक्सर पूछे जाने वाले प्रश्न

क्या “Native Image बनाना” पाठ निःशुल्क है?

हाँ—“Native Image बनाना” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Java Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Java Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Native Image बनाना” में मैं क्या सीखूँगा?

Ahead-of-time compilation आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Java Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Java Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Java Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“Native Image बनाना” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Java Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Java Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. GraalVM क्या है
  2. Native Image बनाना
  3. Reflection और Configuration
  4. Native Image के समझौते
← Java Academy पर वापस जाएँ