JVM तुम्ही लिहिलेला कोड थेट चालवू शकत नाही. बायकोडमध्ये लिहिलेले प्रोग्राम्स कसे कार्यान्वित करायचे हे त्यालाच माहीत आहे. बाइटकोड ही निम्न-स्तरीय भाषा आहे जी मशीन कोडच्या जवळ आहे.

Java साठी, संकलन म्हणजे जावामध्ये लिहिलेल्या (उच्च स्तरीय) प्रोग्रामचे त्याच प्रोग्राममध्ये बाईटेकोडमध्ये लिहिलेले भाषांतर आहे.

तुमचा कोड .java फाईलमध्ये कंपाइलरकडे पाठवला जातो. जर कंपाइलरला कोडमध्ये कोणतीही त्रुटी आढळली नाही, तर तुम्हाला नवीन बायटेकोड फाइल परत मिळेल. या फाईलचे नाव समान असेल परंतु वेगळा विस्तार असेल: .class . कोडमध्ये त्रुटी असल्यास, कंपाइलर तुम्हाला "प्रोग्राम संकलित केले नाही" असे सांगेल. मग तुम्हाला प्रत्येक त्रुटी संदेश वाचण्याची आणि त्रुटी दूर करण्याची आवश्यकता आहे.

तुम्ही कंपाइलरला कॉल करण्यासाठी javac कमांड वापरता, जो JDK (जावा डेव्हलपमेंट किट) चा भाग आहे. याचा अर्थ असा की जर तुम्ही फक्त JRE (Java Runtime Environment) इंस्टॉल केले तर तुमच्याकडे कंपाइलर नसेल! तुमच्याकडे फक्त JVM असेल, जे फक्त bytecode चालवू शकते. म्हणून आम्ही JDK इंस्टॉल करतो आणि आमची .java फाईल कंपायलरकडे पाठवतो.

उदाहरणार्थ, काही कन्सोल आउटपुटसह एक साधा प्रोग्राम घेऊ:


class MySolution {
   public static void main(String[] args) {
      System.out.println("Hi, command line!");
   }
}

हा कोड D:/temp/MySolution.java या फाईलमध्ये सेव्ह करू .

कमांड वापरून कोड संकलित करू


D:\temp>javac MySolution.java

कोडमध्ये संकलित त्रुटी नसल्यास, टेम्प फोल्डरमध्ये MySolution.class फाइल दिसून येईल . इतकेच काय, तुमचा कोड असलेली MySolution.java फाइल कुठेही जात नाही. तो जिथे होता तिथेच राहतो. पण आता MySolution.class मध्ये bytecode आहे आणि JVM द्वारे थेट चालवायला तयार आहे.

आमचे उदाहरण शक्य तितके सोपे आहे, परंतु सर्वात मोठे आणि सर्वात जटिल प्रकल्प देखील javac कमांड वापरतात. त्यामुळे ते कसे कार्य करते हे जाणून घेणे तुमच्यासाठी खूप उपयुक्त ठरेल.

तुम्ही एका वेळी एकापेक्षा जास्त वर्ग संकलित करू शकता. उदाहरणार्थ, समजा टेम्प फोल्डरमध्ये Cat.java ही दुसरी फाईल आहे :


D:\temp>javac MySolution.java Cat.java

किंवा हे:


D:\temp>javac *.java

एकदा संकलित केल्यावर, .class फाइल्स जार फाइलमध्ये पॅकेज केल्या जाऊ शकतात , ज्या सोयीस्करपणे वेगवेगळ्या संगणकांवर हलवल्या जाऊ शकतात आणि नंतर त्यावर चालवल्या जाऊ शकतात. जार फाइल कशी तयार करायची याचे उदाहरण येथे आहे :


D:\temp>jar cvfe myjar.jar MySolution MySolution.class Cat.class

कुठे:

  • jar ही JDK मध्ये समाविष्ट असलेल्या .jar फाइल्स तयार करण्यासाठी कमांड आहे

  • cvfe खालील अर्थांसह कमांड लाइन पर्याय आहेत:

    • c - नवीन जार फाइल तयार करा

    • v - वर्बोस माहिती प्रदर्शित करा

    • f - सूचित करते की आम्हाला टूलचे आउटपुट फाइलमध्ये ठेवायचे आहे ( myjar.jar )

    • e – एंट्री पॉइंट ( MySolution ) दर्शविते, म्हणजे मुख्य पद्धत समाविष्ट असलेला वर्ग

  • MySolution.java Cat.class – फाइल्सची जागा-विभक्त नावे जी जार फाइलमध्ये पॅक केली जातील.

आम्ही परिणामी जार फाइल कशी चालवतो ते येथे आहे:


D:\temp>java -jar myjar.jar
अधिक तपशीलवार माहितीसाठी:
javac आणि jar टूल्समध्ये अंगभूत मदत आहे . ते प्रदर्शित करण्यासाठी, कमांड लाइनवर खालील चालवा:
  • javac --मदत
  • जार --मदत