Commons CLI 入门

来源:互联网 发布:sql的in语句是什么意思 编辑:程序博客网 时间:2024/06/10 10:45

在写的程序 打成jar包之后,往其中输入参数,执行不同的函数,其中有Apache 有一个commons-cli 的包,可以实现这样的功能。

maven库:

<dependency>        <groupId>commons-cli</groupId>        <artifactId>commons-cli</artifactId>        <version>1.4</version></dependency>
package com.eastcom.first.spark.data.option;import java.util.logging.Level;import java.util.logging.Logger;import org.apache.commons.cli.BasicParser;import org.apache.commons.cli.CommandLine;import org.apache.commons.cli.CommandLineParser;import org.apache.commons.cli.HelpFormatter;import org.apache.commons.cli.Options;import org.apache.commons.cli.ParseException;public class Cli {private static final Logger log = Logger.getLogger(Cli.class.getName());private static Options options = new Options();private static String[] args = { "-h", "-v", "hello,world" };public static void main(String[] args) throws ParseException {// 定义阶段options.addOption("h", "help", false, "show help.");options.addOption("v", "var", true, "Here you can set parameter .");// 解析阶段CommandLineParser parser = new BasicParser();CommandLine cmd = null;try {// 获取参数值,应用程序交互阶段。应用程序启动。cmd = parser.parse(options, args);if (cmd.hasOption("h"))help();if (cmd.hasOption("v")) {// cmd.getOptionValue("v") 获得v传入的参数值。log.log(Level.INFO, "Using cli argument -v=" + cmd.getOptionValue("v"));// Whatever you want to do with the setting goes here} else {log.log(Level.SEVERE, "MIssing v option");help();}} catch (ParseException e) {log.log(Level.SEVERE, "Failed to parse comand line properties", e);help();}}private static void help() {// This prints out some helpHelpFormatter formater = new HelpFormatter();formater.printHelp("Main", options);System.exit(0);}}

输入参数:

private static String[] args = { "-h", "-v", "hello,world" };

运行结果:

十月 31, 2017 8:32:53 下午 com.eastcom.first.spark.data.option.Cli main严重: MIssing v optionusage: Main -h,--help        show help. -v,--var <arg>   Here you can set parameter .

输入参数: 

String[] args1 = { "-v", "hello,world" };

运行结果:
十月 31, 2017 8:38:35 下午 com.eastcom.first.spark.data.option.Cli main信息: Using cli argument -v=hello,world

参考链接:https://segmentfault.com/a/1190000006795206






原创粉丝点击