इंटरनेट पर अधिकांश वेबसाइटें कहती हैं:
"
javacकिसी.javaफ़ाइल को संकलित करने के लिए कमांड का उपयोग करें । फिरjavaकमांड का उपयोग करके इसे चलाएं "
लेकिन आज मैंने बिना जावा प्रोग्राम चलाने की कोशिश की javacऔर मुझे एक अजीब परिणाम मिला।
यहाँ एक फ़ाइल की सामग्री को कहा जाता है hello.java:
public class Myclass {
public static void main(String[] args){
System.out.println("hello world");
}
}
फिर मैं भागा:
$ javac hello.java
जो मुझे यह त्रुटि देता है:
hello.java:1: error: class Myclass is public, should be declared in a file named Myclass.java
public class Myclass {
^
1 error
लेकिन जब मैं इसे javacकमांड के बिना चलाता हूं , तो यह बिना किसी त्रुटि के निष्पादित होता है।
$ java hello.java
hello world
क्या javaकमांड भी प्रोग्राम को संकलित करता है? यदि हाँ, तो हमें javacकमांड की आवश्यकता क्यों है ?
मेरे जावा का संस्करण है:
openjdk version "12.0.2" 2019-07-16
OpenJDK Runtime Environment (build 12.0.2+10)
OpenJDK 64-Bit Server VM (build 12.0.2+10, mixed mode)
Myclass.javaकमांड लाइन से इसे इस तरह संकलित करें javac Myclass.javaऔर फिर इसे इस तरह चलाएं java Myclass।
javacयदि आप स्रोत कोड को तैनात नहीं करना चाहते हैं , तब भी संकलित करने के लिए उपयोग किया जाता है, या आपके पास एक से अधिक फ़ाइल ( स्रोत-फ़ाइल विकल्प के लिए दस्तावेज़ीकरणjava : केवल एक स्रोत-फ़ाइल प्रोग्राम लॉन्च करने के लिए उपयोग किया जाता है।)
javacजावा स्रोत को JVM द्वारा व्याख्या किए गए विशिष्ट बायोटेक में संकलित किया गया है और javaकमांड इसे JVM के क्लासलोडर के अंदर लोड करता है।