0%

Apache Commons CLI

Apache Commons 中的CLI库提供了解析命令行选项的API。同样也可以帮你打印出标准的帮助信息。

在*nix系统中使用命令行,经常会需要加参数进行不同的操作,Apache Commons提供的这个库可以帮你实现这样的功能。

#介绍

项目官方地址
下载地址

#使用
直接代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.DefaultParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;


public class CliTest {

public static void main(String[] args) {
// TODO Auto-generated method stub
Options options = new Options();

options.addOption("t", false, "display current time");
options.addOption("c", true, "country code");

HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("help", options);

CommandLineParser parser = new DefaultParser();
try {
CommandLine cmd = parser.parse(options, args);
// No argument command 't'
if (cmd.hasOption("t")){
System.out.println("Yes");
} else {
System.out.println("No");
}

// With argument command 'c'
String countryCode = cmd.getOptionValue("c");
if (countryCode == null) {
System.out.println("no code");
} else {
System.out.println("code:" + countryCode);
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.exit(-1);
}

}

}

加参数**-t -c cn**执行得到的结果:

1
2
3
4
5
6
usage: help
-c <arg> country code
-t display current time
Yes
code:cn

Welcome to my other publishing channels