मैं अभी जावा में प्रोग्राम लिखने लगा हूँ। निम्नलिखित जावा कोड का क्या अर्थ है?
public static void main(String[] args)
क्या है
String[] args
?आप इनका उपयोग कब करेंगे
args
?
स्रोत कोड और / या उदाहरण सार स्पष्टीकरण पर पसंद किए जाते हैं
मैं अभी जावा में प्रोग्राम लिखने लगा हूँ। निम्नलिखित जावा कोड का क्या अर्थ है?
public static void main(String[] args)
क्या है String[] args
?
आप इनका उपयोग कब करेंगे args
?
स्रोत कोड और / या उदाहरण सार स्पष्टीकरण पर पसंद किए जाते हैं
जवाबों:
जावा args
में वस्तुओं के एक सरणी के रूप में आपूर्ति की गई कमांड-लाइन तर्क शामिलString
हैं।
दूसरे शब्दों में, यदि आप के रूप में अपने कार्यक्रम चलाने java MyProgram one two
तो args
शामिल होंगे ["one", "two"]
।
यदि आप की सामग्री का उत्पादन करना चाहते हैं args
, तो आप इस तरह से उनके माध्यम से लूप कर सकते हैं ...
public class ArgumentExample {
public static void main(String[] args) {
for(int i = 0; i < args.length; i++) {
System.out.println(args[i]);
}
}
}
args
ओएस की परवाह किए बिना अंतरिक्ष से अलग होने की गारंटी है?
-version
, उदाहरण के लिए, यह java -version
और java.exe -version
नहीं, बल्कि java.exe /version
(प्रयास मुख्य वर्ग लोड करने के लिए .version
)। बस मेरे 2 सेंट अगर कोई कभी इस पर ठोकर खाता है।
वे जावा में कमांड-लाइन तर्क के लिए हैं।
दूसरे शब्दों में, यदि आप चलाते हैं
जावा मायप्रोग्राम एक दो
फिर args
शामिल हैं:
[ "एक दो" ]
public static void main(String [] args) {
String one = args[0]; //=="one"
String two = args[1]; //=="two"
}
इसका कारण यह है कि आपके एप्लिकेशन को किसी विशेष तरीके से चलाने के लिए कॉन्फ़िगर करना है या इसे कुछ जानकारी प्रदान करना है।
यदि आप जावा में नए हैं, तो मैं आधिकारिक ओरेकल के जावा टीएम ट्यूटोरियल के माध्यम से पढ़ने की सलाह देता हूं ।
args
मंगलाचरण पर जावा प्रोग्राम में पारित कमांड-लाइन तर्क शामिल हैं। उदाहरण के लिए, अगर मैं इस तरह से कार्यक्रम शुरू करता हूं:
$ java MyProg -f file.txt
फिर args
एक सरणी होगी जिसमें तार होंगे "-f"
और "file.txt"
।
javac MyProg.java
चलाना था और चलाना था java MyProg -f file.txt
। क्या इसका कोई कारण है, क्योंकि उत्तर में कहीं भी इसका उल्लेख नहीं है?
निम्नलिखित उत्तर मेरी समझ और कुछ परीक्षण पर आधारित है।
स्ट्रिंग [] args क्या है?
Ans->
स्ट्रिंग [] -> जैसा कि हम जानते हैं कि यह एक सरल स्ट्रिंग सरणी है।
args -> यह एक सरणी का नाम है जो कुछ भी हो सकता है (जैसे a, ar, तर्क, परम, पैरामीटर) संकलक के साथ कोई समस्या नहीं है और निष्पादित और मैंने भी परीक्षण किया है।
उदाहरण
1) सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] तर्क)
2) सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] पैरामीटर)
आप इन आर्ग्स का उपयोग कब करेंगे?
उत्तर->
मुख्य फ़ंक्शन डेवलपर्स द्वारा बहुत समझदारी से डिज़ाइन किया गया है। वास्तविक सोच बहुत गहरी है। जिसे मूल रूप से कमांड लाइन तर्क के आधार पर C & C ++ के तहत विकसित किया गया है, लेकिन आजकल कोई भी इसका अधिक उपयोग नहीं करता है।
थिंग 1- उपयोगकर्ता कमांड लाइन से किसी भी प्रकार का डेटा दर्ज कर सकता है और यह संकलक द्वारा स्वीकार करने के लिए नंबर या स्ट्रिंग हो सकता है या आवश्यक हो सकता है जिसे हमें उपयोग करना चाहिए? बात २ देखें
थिंग 2- स्ट्रींग वह डायटाइप है जो जावा में सभी आदिम डेटाैटिप्स जैसे कि इंट, लॉन्ग, फ्लोट, डबल, बाइट, शॉट, चार का समर्थन करता है। आप इसे आसानी से किसी भी आदिम डेटाटाइप में पार्स कर सकते हैं।
उदाहरण के लिए निम्नलिखित कार्यक्रम संकलित और निष्पादित किया गया है और मैंने भी परीक्षण किया है।
यदि इनपुट है -> 1 1
// one class needs to have a main() method
public class HelloWorld
{
// arguments are passed using the text field below this editor
public static void main(String[] parameter)
{
System.out.println(parameter[0] + parameter[1]); // Output is 11
//Comment out below code in case of String
System.out.println(Integer.parseInt(parameter[0]) + Integer.parseInt(parameter[1])); //Output is 2
System.out.println(Float.parseFloat(parameter[0]) + Float.parseFloat(parameter[1])); //Output is 2.0
System.out.println(Long.parseLong(parameter[0]) + Long.parseLong(parameter[1])); //Output is 2
System.out.println(Double.parseDouble(parameter[0]) + Double.parseDouble(parameter[1])); //Output is 2.0
}
}
यहां तक कि ओपी ओपी के बारे में भी बात कर रहा String[] args
हूं, मैं इसका पूरा उदाहरण देना चाहता हूं public static void main(String[] args)
।
Public
: एक एक्सेस मोडिफायर है , जो परिभाषित करता है कि कौन इस तरीके तक पहुंच सकता है। सार्वजनिक का अर्थ है कि यह विधि किसी भी वर्ग द्वारा सुलभ होगी (यदि अन्य वर्ग इस कक्षा तक पहुँचने में सक्षम हैं।)।
Static
: एक कीवर्ड है जो वर्ग से संबंधित चीज़ की पहचान करता है। इसका अर्थ यह है कि दी गई विधि या चर संबंधित नहीं बल्कि कक्षा से संबंधित है। यह एक कक्षा का उदाहरण बनाए बिना पहुँचा जा सकता है।
Void
: विधि के रिटर्न प्रकार को परिभाषित करने के लिए उपयोग किया जाता है। यह परिभाषित करता है कि क्या विधि वापस आ सकती है। शून्य का अर्थ है विधि किसी भी मूल्य को वापस नहीं करेगी।
main
: विधि का नाम है। यह विधि नाम JVM द्वारा केवल एक विशेष हस्ताक्षर के साथ एक आवेदन के लिए एक प्रारंभिक बिंदु के रूप में खोजा जाता है।
String[] args
: मुख्य विधि का पैरामीटर है।
यदि आप JDK स्रोत कोड (jdk-src \ j2se \ src \ share \ bin \ j2.c.c) को देखते हैं:
/* Get the application's main method */
mainID = (*env)->GetStaticMethodID(env, mainClass, "main",
"([Ljava/lang/String;)V");
...
{ /* Make sure the main method is public */
...
mods = (*env)->CallIntMethod(env, obj, mid);
if ((mods & 1) == 0) { /* if (!Modifier.isPublic(mods)) ... */
message = "Main method not public.";
messageDest = JNI_TRUE;
goto leave;
...
आप देख सकते हैं कि प्रारंभिक विधि जावा में का नाम main
होना चाहिए और विशिष्ट हस्ताक्षर होना चाहिएpublic static void main(String[] args)
कोड हमें यह भी बताता है कि public static void main(String[] args)
निश्चित नहीं है, यदि आप कोड (jdk-src \ j2se \ src \ share \ bin \ java.c) को किसी अन्य हस्ताक्षर में बदलते हैं, तो यह काम करेगा लेकिन इसे बदलने से आपको अन्य संभावित समस्याएं मिलेंगी जावा की वजह से चश्मा
ऑफटॉपिक: ओपी से यह सवाल पूछे जाने में 7 साल हो गए हैं, मेरा अनुमान है कि ओपी अब तक खुद के सवाल का जवाब दे सकता है।
String [] args
यह भी है कि आप जावा में स्ट्रिंग्स की एक सरणी कैसे घोषित करते हैं।
इस पद्धति के हस्ताक्षर में, सरणी args
को मूल्यों से भर दिया जाएगा जब विधि को बुलाया जाता है (जैसा कि यहां अन्य उदाहरण दिखाते हैं)। यद्यपि आप सीख रहे हैं, यह समझने लायक है कि यह args
सरणी ठीक उसी तरह है जैसे आपने खुद को एक विधि में बनाया है, जैसे कि:
public void foo() {
String [] args = new String[2];
args[0] = "hello";
args[1] = "every";
System.out.println("Output: " + args[0] + args[1]);
// etc... the usage of 'args' here and in the main method is identical
}
मैं टूट जाता
public static void main(String args[])
भागों में।
"सार्वजनिक" का अर्थ है कि मुख्य () को कहीं से भी बुलाया जा सकता है।
"स्थिर" का अर्थ है कि मुख्य () एक विशिष्ट वस्तु से संबंधित नहीं है
"शून्य" अर्थ है कि मुख्य () का कोई मूल्य नहीं है
"मुख्य" एक फ़ंक्शन का नाम है। मुख्य () विशेष है क्योंकि यह कार्यक्रम की शुरुआत है।
"स्ट्रिंग []" का अर्थ स्ट्रिंग का एक सरणी है।
"आर्ग्स" स्ट्रिंग का नाम है [] (मुख्य के शरीर के भीतर) ()। "आर्ग्स" विशेष नहीं है; आप इसे कुछ और नाम दे सकते हैं और यह कार्यक्रम उसी तरह काम करेगा।
String[] args
स्ट्रिंग्स का एक संग्रह है, जिसे एक स्थान से अलग किया जाता है, जिसे टर्मिनल पर प्रोग्राम में टाइप किया जा सकता है। अधिक बार नहीं, शुरुआत करने वाला इस चर का उपयोग करने वाला नहीं है, लेकिन यह हमेशा ही होता है।जब आप अपना कोड पूरा कर लेते हैं, तो आप इसे एक्सटेंशन के साथ एक फ़ाइल में बदल देंगे। जावा, जिसे डबल क्लिक करके चलाया जा सकता है, लेकिन कंसोल के दौरान (मैक पर टर्मिनल, विंडोज़ पर cmd.exe) जो उपयोगकर्ता को करने देता है बहुत सी बातें। एक बात यह है कि वे सांत्वना संदेश (System.out.print या System.out.println) देख सकते हैं, जिसे वे देख नहीं सकते कि क्या वे डबल क्लिक करते हैं। एक और चीज जो वे कर सकते हैं, वह निर्दिष्ट पैरामीटर है, इसलिए आमतौर पर आप लाइन का उपयोग करेंगे
java -jar MyCode.jar
के साथ कार्यक्रम के फ़ोल्डर में नेविगेट करने के बाद
cd C:My/Code/Location
खिड़कियों पर या
cd My/Code/Location
मैक पर (नोटिस कि मैक कम क्लंकी है) कोड चलाने के लिए, लेकिन उन मापदंडों को निर्दिष्ट करने के लिए जिनका आप उपयोग करेंगे
java -jar MyCode.jar parameter1 parameter2
आर्ग्स सरणी में संग्रहीत ये पैरामीटर, जिन्हें आप अपने प्रोग्राम में उपयोग कर सकते हैं, क्या आप उपयोगकर्ता को विशेष मापदंडों को नियंत्रित करने की अनुमति देना चाहते हैं जैसे कि क्या फ़ाइल का उपयोग करना है या प्रोग्राम की कितनी मेमोरी हो सकती है। यदि आप यह जानना चाहते हैं कि किसी ऐरे का उपयोग कैसे किया जाए, तो आप शायद इस साइट पर एक विषय खोज सकते हैं या इसे केवल Google कर सकते हैं। ध्यान दें कि किसी भी संख्या में मापदंडों का उपयोग किया जा सकता है।
सरल आम आदमी की भाषा में व्याख्या।
जब हम अपने जेवीएम को वर्ग के नाम पर निर्देशित करते हैं, तो मुख्य विधि हमें कुछ तर्क प्रदान करने की उम्मीद करती है। इसका मतलब है, मान लीजिए कि आपकी फ़ाइल का नाम Try.java है, अब इसे निष्पादित करने के लिए कमांड प्रॉम्प्ट में "javac Try.java" लिखने के लिए "java try" को निष्पादित करने के लिए संकलित करें। अब मान लें कि लिखने के बजाय केवल "जावा ट्राई" लिखिए आप "जावा ट्राई 1" लिखिए। यहां आपने एक तर्क "1" पास किया है। यह आपके मुख्य विधि द्वारा लिया जाएगा भले ही आप इसे अपने कोड में उपयोग न करें।
यदि आप यह जांचना चाहते हैं कि क्या आपकी मुख्य विधि ने वास्तव में "1" का तर्क लिया है या नहीं। बस, अपनी मुख्य विधि के अंदर निम्नलिखित टाइप करें:
for(int i = 0; i < args.length; i++) {
System.out.println("Argument is: "+args[i]);
}
मुझे लगता है कि यह ऊपर दिए गए उत्तरों से बहुत अच्छी तरह से कवर किया गया है, String args[]
जब आप इसे चलाते हैं तो यह केवल एक तर्क है जिसे आप अपने आवेदन में पास कर सकते हैं। पूरा होने के लिए, मैं यह जोड़ सकता हूं कि यह विधि को दिए गए विधि पैरामीटर को परिभाषित करने के लिए मान्य है main
प्रकार के चर (चर) प्रकार के रूप में:
public static void main (String... args)
दूसरे शब्दों में, main
विधि को या तो स्ट्रिंग सरणी ( String args[]
) या varargs ( String... args
) को विधि तर्क के रूप में स्वीकार करना चाहिए । और नाम के साथ कोई जादू args
भी नहीं है। साथ ही आप लिख सकते हैं arguments
या यहां तक कि freddiefujiwara
के रूप में e.gs नीचे में दिखाया गया है .:
public static void main (String[] arguments)
public static void main (String[] freddiefujiwara)
जब एक जावा क्लास को कंसोल से निष्पादित किया जाता है, तो मुख्य विधि जिसे कहा जाता है। ऐसा होने के लिए, इस मुख्य विधि की परिभाषा होनी चाहिए
public static void main(String [])
तथ्य यह है कि इस स्ट्रिंग सरणी को args कहा जाता है एक मानक सम्मेलन है, लेकिन सख्ती से आवश्यक नहीं है। आप कमांड लाइन पर इस सरणी को पॉपअप करेंगे, जिस पर आप अपने कार्यक्रम को लागू करते हैं
java MyClass a b c
ये आमतौर पर आपके प्रोग्राम के विकल्पों को परिभाषित करने के लिए उपयोग किए जाते हैं, उदाहरण के लिए फ़ाइलों को लिखने या पढ़ने के लिए।
में public static void (String args []) आर्ग सांत्वना लाइन तर्क जिसका डेटा प्रकार स्ट्रिंग है की एक सरणी है। इस सरणी में, आप नीचे दिखाए गए अनुसार कमांड लाइन पर उन्हें आमंत्रित करके विभिन्न स्ट्रिंग तर्क संग्रहीत कर सकते हैं: जावा myProgram शान रॉयल और फिर शान को रॉयल में सरणी में संग्रहीत किया जाएगा [0] = "शान"; आर्ग [1] = "रॉयल"; आप इसे प्रोग्राम के अंदर मैन्युअल रूप से भी कर सकते हैं, जब आप उन्हें कमांड लाइन पर नहीं बुलाते हैं।
String[] args
पैरामीटर पैरामीटर के रूप में पारित कर दिया तार की एक सरणी है जब आप ओएस में कमांड लाइन के माध्यम से अपने आवेदन चल रहे हैं है।
तो, कल्पना कीजिए कि आपने myApp.jar
जावा एप्लिकेशन को संकलित और पैक किया है । आप अपने ऐप को OS में डबल क्लिक करके चला सकते हैं, बेशक, लेकिन आप इसे कमांड लाइन तरीके से भी चला सकते हैं, जैसे (लिनक्स में, उदाहरण के लिए):
user@computer:~$ java -jar myApp.jar
जब आप अपने आवेदन को कुछ मापदंडों को पास करते हैं, जैसे:
user@computer:~$ java -jar myApp.jar update notify
java -jar
आदेश अपने स्ट्रिंग्स पारित करेंगे update
और notify
करने के लिए अपनेpublic static void main()
विधि।
फिर आप कुछ ऐसा कर सकते हैं:
System.out.println(args[0]); //Which will print 'update'
System.out.println(args[1]); //Which will print 'notify'
पिछली सभी टिप्पणियों के अलावा।
public static void main(String[] args)
के रूप में लिखा जा सकता है
public static void main(String...arg)
या
public static void main(String...strings)
args
जरूरी नहीं कि इसका नाम होargs
(आप इसे जो चाहें नाम दे सकते हैं) - हालांकि यह सम्मेलन का पालन करना सबसे अच्छा है। आपString... args
समय-समय पर देख सकते हैं, जो समकक्ष है।