मैं कमांड-लाइन तर्क के रूप में फ़ाइल कैसे प्राप्त कर सकता हूं?किसी प्रोग्राम में फ़ाइलों को पास करने के लिए कमांड लाइन तर्क का उपयोग
उत्तर
बस फ़ाइल का रास्ता अंदर अपने कार्यक्रम जावा फ़ाइल वर्ग का उपयोग को संभालने के लिए यह
इस फ़ाइल पथ के रूप में पहली पैरामीटर लेता है पारित कर दिया है,:
import java.io.File;
public class SomeProgram {
public static void main(String[] args) {
if(args.length > 0) {
File file = new File(args[0]);
// Work with your 'file' object here
}
}
}
, main
विधि को स्ट्रिंग की एक सरणी तर्क के रूप में प्राप्त होती है, जैसा कि आपने शायद देखा है। आप args
पैरामीटर पर एक और नाम दे सकते हैं, लेकिन यह सबसे अधिक उपयोग किया जाता है।
सरणी args
कक्षा के नाम के बाद, आपके प्रोग्राम को लॉन्च करते समय उपयोगकर्ता द्वारा टाइप किए गए मूल्यों के मान शामिल हैं। उदाहरण के लिए, एक वर्ग फू नामित चलाने के लिए, उपयोगकर्ता टाइप करना होगा:
[उपयोगकर्ता @ डेस्कटॉप ~] $ जावा फू
सब कुछ उपयोगकर्ता प्रकार के बाद वर्ग के नाम एक पैरामीटर माना जाता है ।
[उपयोगकर्ता @ डेस्कटॉप ~] $ जावा फू बार baz
अब अपने कार्यक्रम प्राप्त हुआ है दो पैरामीटर: बार और baz उदाहरण के लिए। उन पैरामीटर सरणी args
में संग्रहीत हैं। नियमित जावा सरणी के रूप में, पहला पैरामीटर args[0]
तक पहुंचकर पुनर्प्राप्त किया जा सकता है, दूसरा पैरामीटर args[1]
तक पहुंचकर पुनर्प्राप्त किया जा सकता है, और इसी तरह। यदि आप किसी अमान्य स्थिति तक पहुंचने का प्रयास करते हैं (जब उपयोगकर्ता ने आपकी अपेक्षा की कोई टाइप नहीं की थी), तो वह कथन ArrayIndexOutOfBoundsException
फेंक देगा, जैसा कि यह किसी भी सरणी के साथ होगा। आप देख सकते हैं कि args.length
के साथ कितने पैरामीटर टाइप किए गए थे।
तो, अपने प्रश्न पर वापस जाएं। उपयोगकर्ता एक फ़ाइल नाम को कमांड लाइन पैरामीटर के रूप में सूचित कर सकता है और आप main
विधि के तर्क के माध्यम से उस मान को पढ़ सकते हैं, जिसे आमतौर पर args
कहा जाता है। आपको यह जांचना होगा कि क्या उसने वास्तव में कुछ तर्क (सरणी की लंबाई की जांच) के रूप में टाइप किया है, और यदि यह ठीक है, तो आप उसे टाइप करने के लिए args[0]
तक पहुंच सकते हैं। फिर, आप उस स्ट्रिंग के आधार पर File
ऑब्जेक्ट बना सकते हैं, और वह करें जो आप इसके साथ करना चाहते हैं। हमेशा जांचें कि उपयोगकर्ता ने आपके द्वारा अपेक्षित पैरामीटर की संख्या टाइप की है या नहीं, अन्यथा आपको सरणी तक पहुंचने पर अपवाद मिलेगा।
यहाँ कैसे कमांड लाइन पैरामीटर का उपयोग करने का एक पूरा उदाहरण है:
public class Foo {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("no arguments were given.");
}
else {
for (String a : args) {
System.out.println(a);
}
}
}
}
इस वर्ग के मानकों उपयोगकर्ता द्वारा सूचित किया पार्स होगा। अगर उसने कुछ भी टाइप नहीं किया है, तो कक्षा संदेश मुद्रित करेगी "कोई तर्क नहीं दिया गया था।" अगर वह किसी भी पैरामीटर को सूचित करता है, तो उन पैरामीटर स्क्रीन पर दिखाए जाएंगे। हां, दो उदाहरण मैं इस जवाब पर दिया है के साथ इस वर्ग चल रहा है, उत्पादन होगा:
[उपयोगकर्ता @ डेस्कटॉप ~] $ जावा फू
कोई तर्क दिए गए थे।
[उपयोगकर्ता @ डेस्कटॉप ~] $ जावा फू बार baz
बार
baz
मेरी राय में, सबसे अच्छा अभ्यास आर्ग == 0 का पता लगाने और उपयोग के बारे में मदद आदेशों की एक सूची प्रदान करने की कोशिश की कार्यक्रम अगर कोई तर्क प्रदान नहीं किया जाता है।
स्टैक ओवरव्लो में आपका स्वागत किया! मुझे लगता है कि पोस्टर यह जानना चाहता है कि अगर तर्क> 0, वास्तव में इसका समाधान कैसे किया जाए। –
मैंने कुछ अन्य समाधान देखा, लेकिन मुझे लगता है कि यदि आप काम करेंगे तो वे काम नहीं करेंगे। उदाहरण के लिए, कमांड लाइन तर्क के रूप में C:\Program Files\file.dat
प्रदान करें। फिर यह काम नहीं करेगा, क्योंकि आप नई फ़ाइल बनाते समय केवल args[0]
लेते हैं।
तो तुम वास्तव में कुछ निम्नलिखित की तरह दिए गए तर्क के सभी भागों में शामिल होने के लिए क्या करना चाहिए, और फिर इसे से एक फ़ाइल बनाने:
import java.io.File;
public class SomeProgram {
public static void main(String[] args) {
String current = "";
File lastFile = null;
for(String str : args){
File newFile = new File((current + " " + str).trim());
if(newFile.exists()){
lastFile = newFile;
}
current += " " + str;
}
File yourFile = lastFile;
}
}
मैं वर्तमान में एक ऐसी ही समस्या पर काम कर रहा हूँ और यह करने के लिए लगता है छल।
यह एक अच्छा समाधान है अगर कार्यक्रम में उत्तीर्ण तर्क (ओं) एक फ़ाइल पथ है जिसमें रिक्त स्थान हैं। हालांकि, कार्यक्रम में केवल एक फ़ाइल पथ पारित होने पर यह एक अच्छा दृष्टिकोण नहीं है। कार्यक्रम में भेजने से पहले उद्धरण के साथ फ़ाइल पथ को घेरना उचित तरीका है। कार्यक्रम को तब जांचना चाहिए कि प्रत्येक तर्क सही प्रकार का है, और यदि सही उपयोग केस प्रदर्शित नहीं होता है और बाहर निकलता है। –
- 1. आवेदन के लिए कमांड लाइन तर्क पास करने के लिए जेएनएलपी का उपयोग कैसे करें?
- 2. एएनटी से jstestdriver JAR को कमांड लाइन तर्क पास करना?
- 3. सी ++ कमांड लाइन तर्क के साथ एक और प्रोग्राम निष्पादित करने के लिए प्रोग्राम
- 4. कमांड लाइन तर्क
- 5. सी # कमांड-लाइन प्रोग्राम
- 6. क्या यह कमांड लाइन तर्क
- 7. आईडीएलई का उपयोग कर पायथन कार्यक्रम में कमांड लाइन तर्क पास करना?
- 8. कमांड लाइन तर्क introspection
- 9. जावा कमांड लाइन तर्क
- 10. कमांड लाइन तर्क
- 11. बैश में कमांड लाइन तर्क
- 12. लूप प्रिंट्स ब्रैकेट्स के लिए बैश में कमांड लाइन तर्क सीमा का उपयोग करके तर्क
- 13. जावा कमांड लाइन तर्क। * गुणा
- 14. मैं WinForms एप्लिकेशन में कमांड लाइन तर्क कैसे पास करूं?
- 15. जावा कमांड लाइन प्रोग्राम
- 16. जावा getRuntime()। Exec() को तर्क के साथ कमांड लाइन प्रोग्राम चलाने के लिए कैसे प्राप्त करें?
- 17. कमांड लाइन तर्क के साथ sed का उपयोग करना?
- 18. कमांड लाइन तर्क के साथ ग्रहण चलाना
- 19. जावा कमांड लाइन तर्क
- 20. gruntjs - कमांड लाइन तर्क
- 21. हास्केल: पार्सिंग कमांड लाइन तर्क
- 22. मैं पर्ल प्रोग्राम में कमांड लाइन तर्क कैसे पास कर सकता हूं?
- 23. किसी विशिष्ट निर्देशिका में फ़ाइलों को छोड़कर फ़ाइलों को स्थानांतरित करने के लिए 'mv' कमांड का उपयोग कैसे करें?
- 24. कमांड लाइन तर्क और वसंत
- 25. पायथन, कमांड लाइन तर्क पार्सिंग
- 26. विचारधारा का उपयोग करते समय कमांड लाइन तर्कों को कैसे पास किया जाए?
- 27. पायथन, यूनिट टेस्ट - पास कमांड लाइन तर्कों को सेट करने के लिए unittest.TestCase
- 28. पायथन कमांड लाइन तर्क (विंडोज)
- 29. पायथन में कमांड लाइन तर्क के रूप में दी गई फ़ाइलों को कैसे खोलें?
- 30. Emacs कस्टम कमांड लाइन तर्क
क्या आप मुझे "arg [0]" के साथ क्या मतलब है, इसके बारे में मुझे और बता सकते हैं मुझे कमांड लाइन विषय पढ़ने के लिए उपयोगी स्रोत नहीं मिला।: ((( – Johanna
"मुख्य विधि" अनुभाग पढ़ें http://java.sun.com/docs/books/tutorial/getStarted/application/index.html पर। यह तर्कसंगत रूप से अच्छी तरह से वर्णन करता है कि "तर्क" क्या है। ट्यूटोरियल स्वयं कई उत्तरों के जवाब खोजने के लिए एक अच्छा स्रोत है आपके पास प्रश्न हैं। –
@ जोहाना: तर्क [0] स्ट्रिंग सरणी को स्थिति 0 (सरणी का पहला तत्व) पर तर्क देता है। तर्क मुख्य (स्ट्रिंग [] तर्क) विधि के पैरामीटर के रूप में पास किए जाते हैं, और स्ट्रिंग्स की एक सरणी है जिसमें प्रोग्राम को पास किए गए कमांड लाइन तर्क शामिल हैं। – Sean