26

私はApacheCommonsCLIを使用して、Javaでコマンドライン引数を処理しています。

aおよびbオプションを宣言し、を使用して値にアクセスできますCommandLine.getOptionValue()

Usage: myapp [OPTION] [DIRECTORY]

Options:
-a        Option A
-b        Option B

DIRECTORY変数を宣言してアクセスするにはどうすればよいですか?

4

2 に答える 2

33

次の方法を使用します。

CommandLine.getArgList()

オプションが処理された後に残っているものを返します。

于 2011-01-14T17:50:41.803 に答える
7

別のオプション(-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;
}
于 2011-01-14T22:05:02.647 に答える