2011-01-14 14 views
20

का उपयोग करते समय पैरामीटर कैसे प्राप्त करें I जावा में कमांड लाइन तर्कों को संभालने के लिए अपाचे कॉमन्स सीएलआई का उपयोग कर रहा हूं।अपाचे कॉमन्स सीएलआई लाइब्रेरी

मैंने a और b विकल्प घोषित किए हैं और मैं CommandLine.getOptionValue() का उपयोग करके मूल्य तक पहुंचने में सक्षम हूं।

Usage: myapp [OPTION] [DIRECTORY] 

Options: 
-a  Option A 
-b  Option B 

मैं डायरेक्टरी वैरिएबल को कैसे घोषित और एक्सेस कर सकता हूं?

CommandLine.getArgList() 

जो जो कुछ भी विकल्प संसाधित किया गया है के बाद बचा है रिटर्न:

+0

कैसे आप 'HelpFormatter' प्रिंट' [विकल्प] [निर्देशिका] 'किया? –

उत्तर

29

निम्न विधि का प्रयोग करें।

+0

क्या होगा यदि सभी विकल्पों के लिए तर्क की संख्या असीमित है? – Zangdak

6

उपयोगकर्ता के लिए अधिक सहज ज्ञान युक्त निर्देशिका की पहचान करने के लिए एक और विकल्प (-d) का उपयोग करना बेहतर हो सकता है।

या निम्न कोड शेष तर्क सूची

हो रही दर्शाता
public static void main(final String[] args) { 
    final CommandLineParser parser = new BasicParser(); 
    final Options options = new Options(); 
    options.addOption("a", "opta", true, "Option A"); 
    options.addOption("b", "optb", true, "Option B"); 

    final CommandLine commandLine = parser.parse(options, args); 

    final String optionA = getOption('a', commandLine); 
    final String optionB = getOption('b', commandLine); 

    final String[] remainingArguments = commandLine.getArgs(); 

    System.out.println(String.format("OptionA: %s, OptionB: %s", optionA, optionB)); 
    System.out.println("Remaining arguments: " + Arrays.toString(remainingArguments)); 
} 

public static String getOption(final char option, final CommandLine commandLine) { 

    if (commandLine.hasOption(option)) { 
     return commandLine.getOptionValue(option); 
    } 

    return StringUtils.EMPTY; 
} 
+1

उसमें, मैं जोड़ता हूं कि हेल्पफॉर्मेटर का उपयोग [DIRECTORY] तर्क मुद्रित करने के लिए किया जाएगा: 'हेल्पफ़ॉर्मेटर फ़ॉर्मेटर = नया हेल्पफॉर्मेटर(); ' ' formatter.printHelp (" myapp [विकल्प] [निर्देशिका] ", विकल्प); ' – Blazes

संबंधित मुद्दे