जावा प्रोग्राम को कैसे कंपाइल करें: शुरुआती‑अनुकूल गाइड javac, PATH सेटअप और सामान्य त्रुटियों के लिए

जब आप जावा सीखना शुरू करते हैं, तो सबसे पहली बाधा जिसका सामना आपको करना पड़ेगा वह है “कम्पाइलेशन”। केवल सोर्स कोड (.java) लिखने से कुछ नहीं चलेगा — आपको javac कमांड का उपयोग करके इसे कम्पाइल करना होगा जिससे एक .class फ़ाइल बनती है, और तभी प्रोग्राम को चलाया जा सकता है। इस लेख में हम जावा कम्पाइलेशन प्रक्रिया, javac का बेसिक उपयोग, PATH कॉन्फ़िगरेशन, और शुरुआती लोगों की आम त्रुटियों के समाधान को एक ऐसे क्रम में सारांशित करेंगे जिसे बिल्कुल शुरुआती भी चरण‑बद्ध रूप से फॉलो कर सके। लक्ष्य है “जावा कम्पाइलेशन के लिए मुझे क्या शुरू करना चाहिए?” से लेकर बिना हिचकिचाहट के कमांड टाइप करने तक पहुँचना।

जावा कम्पाइलेशन क्या है?|शुरुआती‑मित्र “कम्पाइलेशन” की व्याख्या

जावा में, “कम्पाइलेशन” वह प्रक्रिया है जिसमें मानव‑लेखा सोर्स कोड (.java) को जावा वर्चुअल मशीन (JVM) द्वारा पढ़े जाने योग्य फॉर्मेट में बदल दिया जाता है
परिणामस्वरूप जो आउटपुट मिलता है वह .class फ़ाइल होती है, जिसे बाइटकोड कहा जाता है।

C जैसी भाषाओं के विपरीत जो सीधे नेटिव कोड में कम्पाइल होती हैं, जावा एक मध्यवर्ती चरण लेता है — सोर्स कोड पहले बाइटकोड में बदलता है, फिर JVM पर चलाया जाता है।
यह मैकेनिज़्म एक ही .class फ़ाइल को विभिन्न OS वातावरणों पर चलाने की अनुमति देता है — यानी आप एक ही जावा प्रोग्राम को Windows, macOS, या Linux पर चला सकते हैं

एक और महत्वपूर्ण बात जिसे आपको समझना चाहिए: कम्पाइल करना और चलाना दो अलग‑अलग कार्य हैं

  • “javac” → कम्पाइलेशन को संभालता है
  • “java” → एक्सीक्यूशन को संभालता है

अधिकांश शुरुआती इस अंतर को स्पष्ट नहीं समझ पाते। इन “दो अलग‑अलग भूमिकाओं” को स्पष्ट करना आपके समझ में सबसे प्रभावी पहला कदम बन जाता है।

जावा कम्पाइल करने से पहले आवश्यक तैयारी

जावा को कम्पाइल करने के लिए, आपके पास JDK (जावा डेवलपमेंट किट) इंस्टॉल होना चाहिए
केवल JRE से कोड कम्पाइल नहीं किया जा सकता क्योंकि कम्पाइलर टूल javac केवल JDK में ही शामिल होता है।

सबसे पहले इस कमांड को चलाकर जाँचें:

javac -version

यदि यह कमांड एक संस्करण संख्या लौटाता है, तो आप तैयार हैं।
यदि “command not found” या इसी तरह की त्रुटि आती है, तो निम्नलिखित में से कोई एक कारण संभवतः है:

  • JDK इंस्टॉल नहीं है
  • JDK इंस्टॉल है लेकिन PATH सेट नहीं है
  • केवल JRE इंस्टॉल है (डेवलपमेंट किट नहीं)

PATH कॉन्फ़िगरेशन वह जगह है जहाँ जापानी उपयोगकर्ता अक्सर अटक जाते हैं।
यदि ऑपरेटिंग सिस्टम javac.exe (या /bin डायरेक्टरी) तक का पाथ पहचान नहीं पाता, तो कम्पाइलेशन काम नहीं करेगा।

निष्कर्ष:
“JDK तैयार करें” और “PATH सत्यापित करें” — इन दोनों के बिना आप जावा कम्पाइलेशन की वास्तविक शुरुआती लाइन पर नहीं पहुँच सकते।

चलिए वास्तव में एक जावा फ़ाइल को कम्पाइल करते हैं

यहाँ हम एक नमूना कोड बनाएँगे और javac के साथ इसे कम्पाइल करने की प्रक्रिया की पुष्टि करेंगे।
पहले, नीचे दिया गया कंटेंट किसी टेक्स्ट एडिटर में सेव करें।

Sample.java

public class Sample {
    public static void main(String[] args) {
        System.out.println("Hello Java!");
    }
}

फ़ाइल का नाम Sample.java होना चाहिए, और पब्लिक क्लास का नाम फ़ाइल नाम से मेल खाना चाहिए
यदि यह नियम टूटता है, तो कम्पाइलेशन फेल हो जाएगा — यह शुरुआती लोगों की सबसे आम गलती है।

अगला, टर्मिनल / कमांड प्रॉम्प्ट में नीचे दिया गया कमांड चलाएँ:

javac Sample.java

यदि सब कुछ सामान्य रूप से चलता है, तो Sample.class उसी फ़ोल्डर में बन जाएगी।
यह दर्शाता है “कम्पाइलेशन पूरा हो गया।”

तो इस क्षण पर आपके पास है:

  • Sample.java (सोर्स)
  • Sample.class (बाइटकोड)

यह जोड़ी अब तैयार है।
इस चरण पर आप “जावा प्रोग्राम चलाने” के लिए तैयार हैं।

कम्पाइलेशन के बाद इसे कैसे चलाएँ

कम्पाइलेशन पूरा होने के बाद अगला कदम .class फ़ाइल को चलाना है।
यहाँ उपयोग किया जाने वाला कमांड java है — javac नहीं।

java Sample

मुख्य बात: .class एक्सटेंशन लिखें नहीं
java Sample.class लिखने से त्रुटि आएगी।
जावा क्लास नाम (बिना एक्सटेंशन) के आधार पर एक्सीक्यूट करने के लिए डिज़ाइन किया गया है।

संगठित सारांश:

RoleCommandTarget
Compilejavac Sample.java.java file
Runjava SampleClass name (without extension)

यदि आप javac और java के बीच भूमिका परिवर्तन को समझते हैं, तो आपने शुरुआती चरण को सफलतापूर्वक पार कर लिया है।

यदि “Hello Java!” सफलतापूर्वक प्रदर्शित होता है, तो प्रक्रिया सही ढंग से काम कर रही है।
इस बिंदु पर आपने Java की न्यूनतम “फ़्लो” को समझ लिया है।

सामान्य त्रुटियाँ और उन्हें कैसे ठीक करें

Java संकलन में, शुरुआत में त्रुटियों का सामना करना पूरी तरह सामान्य है।
यहाँ हम केवल उन गलतियों पर ध्यान केंद्रित करेंगे जो जापानी शुरुआती विशेष रूप से करते हैं।

1) javac: command not found / 'javac' is not recognized…

लगभग 100 % मामलों में कारण निम्नलिखित में से एक होता है:

  • JDK स्थापित नहीं है
  • PATH कॉन्फ़िगर नहीं किया गया है

समाधान:
javac -version चलाकर सत्यापित करें
→ यदि कुछ नहीं दिखता, तो JDK को पुनः स्थापित करें और PATH कॉन्फ़िगरेशन की समीक्षा करें।

2) संकलन सफल होता है लेकिन .class फ़ाइल नहीं बनती

जापानी शुरुआती में यह सबसे आम समस्या है:

फ़ाइल नाम और सार्वजनिक क्लास नाम मेल नहीं खाते

उदाहरण — यदि Sample.java में है:

public class Test {
}

→ इससे संकलन त्रुटि उत्पन्न होगी।

3) कैरेक्टर-एन्कोडिंग से संबंधित चेतावनियाँ

warning: [options] bootstrap class path not set in conjunction with -source 1.7

ऐसी चेतावनियाँ अधिकांश मामलों में घातक नहीं होतीं।
हालाँकि, ये पुरानी संस्करण सेटिंग्स या असंगत एन्कोडिंग का संकेत दे सकती हैं।
फ़ाइलों को UTF-8 में सहेजना सबसे सुरक्षित विकल्प है।

IDE का उपयोग करके संकलन

वास्तविक Java विकास में, आप हर बार टर्मिनल में javac मैन्युअल रूप से टाइप नहीं करते।
यह इसलिए है क्योंकि IDE (इंटीग्रेटेड डेवलपमेंट एनवायरनमेंट) पृष्ठभूमि में स्वचालित रूप से संकलन संभालता है

निम्नलिखित तीन IDE जापान में अत्यधिक लोकप्रिय हैं और सीखने के लिए भी व्यावहारिक हैं:

IDECharacteristics
IntelliJ IDEAThe de-facto standard for modern Java development. Suitable for professional use.
EclipseLong history, widely used in enterprise projects.
VSCodeLightweight. Java Extension Pack enables a proper Java environment.

IDE में, फ़ाइल सहेजते ही संकलन स्वतः हो जाता है — और त्रुटि स्थान तुरंत दृश्य रूप में दिखता है।
इसका अर्थ है कि आप शुरुआती बाधाओं जैसे “javac टाइप करने में गलती” या “PATH कॉन्फ़िगरेशन गलत” को बायपास कर सकते हैं।

फिर भी, कम से कम एक बार मैन्युअल रूप से javac का अनुभव करना यह समझने के लिए बहुत मूल्यवान है कि Java कैसे काम करता है।
एक बार जब आप “संकलन → चलाना” की प्रक्रिया को हाथ से समझ लेते हैं, तो IDE‑आधारित विकास में आपका समझने का गति काफी तेज़ हो जाता है।

javac विकल्पों का मूलभूत परिचय

javac केवल “.java → .class रूपांतरणकर्ता” नहीं है। आप संकलन व्यवहार को नियंत्रित करने के लिए कई विकल्प जोड़ सकते हैं।
परंतु शुरुआती चरण में, आपको सब कुछ याद रखने की आवश्यकता नहीं है — केवल सामान्यतः उपयोग किए जाने वाले विकल्पों को जानना पर्याप्त है।

यहाँ तीन प्रतिनिधि विकल्प हैं:

OptionMeaningExample
-dSpecify output directory for .class filesjavac -d out Sample.java
-classpathSpecify classpath for external libraries / other directoriesjavac -classpath lib/* Sample.java
--enable-previewEnable preview language featuresjavac --enable-preview Sample.java

विशेष रूप से -d पैकेजों का उपयोग करते समय लगभग अनिवार्य है।
उदाहरण के लिए, यदि आप package com.example; लिखते हैं, तो आउटपुट डायरेक्टरी के तहत सही डायरेक्टरी संरचना बनाने के लिए javac -d का उपयोग करना आवश्यक है।

जैसे-जैसे आप वास्तविक कार्य में प्रवेश करेंगे, classpath निर्दिष्ट करना और -d का उपयोग अत्यधिक बढ़ जाएगा
इस चरण में इन नामों से परिचित होना बाद में सीखने को सुगम बनाता है।

सारांश

Java प्रोग्राम चलाने के लिए आपको 3‑स्टेप क्रम समझना आवश्यक है: स्रोत लिखें → संकलित करें → निष्पादित करें
विशेष रूप से यदि आप javac (संकलन) और java (निष्पादन) की भूमिकाओं को अलग‑अलग समझते हैं, तो “संकलन क्यों आवश्यक है” का कारण अचानक स्पष्ट हो जाता है।

साथ ही, शुरुआती आमतौर पर इन दो बिंदुओं पर अटकते हैं:

  • JDK स्थापित नहीं है / PATH कॉन्फ़िगर नहीं है
  • फ़ाइल नाम और सार्वजनिक क्लास नाम समान नहीं हैं

यदि आप केवल इन दो समस्याओं को हल कर लेते हैं, तो सीखने के चरण में बड़े मोड़ से बच सकते हैं।
बुनियादी बातों में सहज हो जाने के बाद IDE विकास की ओर बढ़ना पूरी तरह ठीक है।
हालाँकि, “आंतरिक तंत्र को समझना” ही बाद में समझ की गति में अंतर पैदा करता है।

इस लेख को शुरुआती बिंदु के रूप में उपयोग करें और पहले बार सफलतापूर्वक .java → .class को पूरा करें।
यही Java सीखने में पहला उपलब्धि माइलस्टोन है।

FAQ: Java संकलन के बारे में अक्सर पूछे जाने वाले प्रश्न

Q1: javac और java में क्या अंतर है?
A: javac संकलन के लिए कमांड है — यह .java को .class में बदलता है।
 दूसरी ओर, java निष्पादन के लिए कमांड है — यह JVM पर .class को चलाता है।

प्रश्न 2: Sample.class उत्पन्न नहीं हो रहा है। कारण क्या है?
A: सबसे आम कारण यह है कि फ़ाइल का नाम और public class का नाम मेल नहीं खाते।
 यदि क्लास public class Sample है, तो फ़ाइल का नाम Sample.java होना चाहिए।

प्रश्न 3: यदि मैं एक IDE का उपयोग कर रहा हूँ, तो क्या मुझे अब javac सीखने की आवश्यकता नहीं है?
A: IDE पृष्ठभूमि में स्वचालित रूप से संकलन करते हैं, लेकिन यदि आप तंत्र को नहीं समझते हैं, तो यह समझना कठिन हो जाता है कि वास्तव में क्या हो रहा है।
 एक बार मूल प्रवाह का अनुभव करने से आप IDE के व्यवहार को तेज़ी से समझ सकते हैं।

प्रश्न 4: मुझे कौन सा JDK स्थापित करना चाहिए?
A: शुरुआती लोगों के लिए, Temurin (Eclipse Adoptium) LTS बिल्ड उपयोग में आसान हैं।
 यदि आपके पास कोई विशेष कारण नहीं है, तो Java 17 या 21 चुनें।

प्रश्न 5: मुझे javac: command not found त्रुटि मिल रही है
A: या तो JDK स्थापित नहीं है या PATH कॉन्फ़िगर नहीं किया गया है।
 पहले javac -version चलाएँ ताकि यह जांच सकें कि यह पहचाना जा रहा है या नहीं।