我正在使用Apache Commons CLI来处理Java中的命令行参数。
我已宣布a
和b
选项,并且我可以使用CommandLine.getOptionValue()
访问该值。
Usage: myapp [OPTION] [DIRECTORY]
Options:
-a Option A
-b Option B
如何声明和访问DIRECTORY变量?
答案 0 :(得分:31)
使用以下方法:
CommandLine.getArgList()
返回处理选项后剩余的内容。
答案 1 :(得分: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;
}