इंटरनेट पर अधिकांश वेबसाइटें कहती हैं:
"
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 के क्लासलोडर के अंदर लोड करता है।