了解Maclean Liu|向Maclean Liu提问 Oracle ALLSTARS 全明星(群内有多位Oracle高级售后support,N位OCM和ACE) QQ群 # QQ群号:23549328 # 已经升级到 2000人群,空位多多。欢迎有一定基础的Oracle骨友加入,现在入群需要经过Maclean的技术面试,欢迎面试,请加QQ号:47079569 为好友参加面试 2群基础群 适合刚入门的同学,会共享最佳入门实践和资料 QQ群 # QQ群号:171092051 # 已经升级到 500人的超级群,空位多多,无需面试

使用CLI解析Java命令行参数

最近准备用Java写一个数据抽取的小玩样,不过距离我上一次用Java写程序已经过去了N(N>4)年了;没有读过<Java编程思想>,深深地觉得现在写出来的代码很不Java风格..... 因为需要在命令行中用到比较复杂的参数(argument),所以想到利用CLI库来解决这一块。 CLI库的Jar文件可以从Apache Commons下载到,目前比较成熟的是CLI 1.2版本。 要使用CLI,我们需要创建一个Options Class的实例对象:
Options Maclean=new Options();
通过该Options对象我们可以定义命令行程序可接受的参数(argument)。加入参数的一种方式是使用addOptions()方法:
JDUL.addOption("END" ,true,  "select the Big or Little Endian");
为命令行程序定义可接受参数后,还需要命令行解析器CommandLineParser进一步解析输入的参数:
BasicParser parser = new BasicParser();
CommandLine cl = parser.parse(JDUL, args);
下面是一段完整的命令行参数解析示例代码:
package par;

import org.apache.commons.cli.BasicParser;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.ParseException;

public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
      try {
            Options JDUL = new Options();

            JDUL.addOption("h"   ,false, "Print help for JDUL");
            JDUL.addOption("END" ,true,  "select the Big or Little Endian");
            JDUL.addOption("SSM" ,true,  "select MSSM or ASSM");

            BasicParser parser = new BasicParser();
            CommandLine cl = parser.parse(JDUL, args);

            if( cl.hasOption('h') ) {
                HelpFormatter f = new HelpFormatter();
               f.printHelp("OptionsTip", JDUL);
            }
            else{
                System.out.println(cl.getOptionValue("END"));
                System.out.println(cl.getOptionValue("SSM"));
            }
        }
        catch(ParseException e) {
            e.printStackTrace();
        }

    }
}
具体使用该命令行解析程序:
C:\Users\maclean>java -jar "C:\Users\maclean\Documents\NetBeansProjects\par\dist\par.jar" -h
usage: OptionsTip
 -END <arg>   select the Big or Little Endian
 -h           Print help for JDUL
 -SSM <arg>   select MSSM or ASSM

C:\Users\maclean>java -jar "C:\Users\maclean\Documents\NetBeansProjects\par\dist\par.jar" -END BIG -SSM AUTO
BIG
AUTO

posted on 2013-03-19 00:47  Oracle和MySQL  阅读(1073)  评论(0编辑  收藏  举报

导航