java解析命令行参数(common-cli)练习

package foo;

import org.apache.commons.cli.BasicParser;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.Options;

public class test {
    public static void main(String[] args) throws Exception{

        CommandLineParser parser = new BasicParser();
        Options options = new Options();
        options.addOption("h","help",false,"Print this usage information");
        options.addOption("v","verbose",false,"Print out VERBOSE information");
        options.addOption("f","file",true,"File to save program output to");
        //Parse the program arguments
        CommandLine commandLine = parser.parse(options, args);
        // Set the appropriate variables based on supplied options
        boolean verbose = false;
        String file = "";

        if(commandLine.hasOption(‘h‘)){
            System.out.println("Help Message");
            System.exit(0);
        }

        if(commandLine.hasOption(‘v‘)){
            verbose = true;
        }

        if(commandLine.hasOption(‘f‘)){
            file = commandLine.getOptionValue(‘f‘);
        }
    }
}

A class that implements the CommandLineParser interface can parse a String array according to the Options specified and return a CommandLine.

//获取配置文件
String configXmlFile = System.getProperty("Config");
//加载配置文件
AbstractApplicationContext applicationContext = new FileSystemXmlApplicationContext(
                configXmlFile);
//MBeanServer是一个包含所有注册MBean的仓库.它是JMX代理层的核心
MBeanServer mbs = java.lang.management.ManagementFactory
                .getPlatformMBeanServer();
logger.info("注册ApplicationServer.");
        ObjectName mbeanName = getApplicationObjectName();
        ApplicationServer applicationServer = new ApplicationServer();
        applicationServer.setApplicationContext(applicationContext);
        mbs.registerMBean(applicationServer, mbeanName);

public static ObjectName getApplicationObjectName()
            throws MalformedObjectNameException {
        ObjectName mbeanName = new ObjectName("fm5:name=ApplicationServer");
        return mbeanName;
    }
时间: 2024-10-26 00:25:03

java解析命令行参数(common-cli)练习的相关文章

boost之program_options库,解析命令行参数、读取配置文件

一.命令行解析 tprogram_options解析命令行参数示例代码: [cpp] view plaincopy #include <iostream> using namespace std; #include <boost/program_options.hpp> namespace po = boost::program_options; int main(int argc, char*argv[]) { //int level; po::options_descripti

flag 是Go 标准库提供的解析命令行参数的包QANDA.REN文库

flag flag 是Go 标准库提供的解析命令行参数的包. 使用方式: flag.Type(name, defValue, usage) 其中Type为String, Int, Bool等:并返回一个相应类型的指针. flag.TypeVar(&flagvar, name, defValue, usage) 将flag绑定到一个变量上. 自定义flag 只要实现flag.Value接口即可: type Value interface { String() string Set(string)

用Google的gflags轻松的编码解析命令行参数

支持的参数类型 gflags支持的类型有bool,int32,int64,uint64,double和string.可以说这些基本类型大体上满足了我们的需求. DEFINE_bool: boolean DEFINE_int32: 32-bit integer DEFINE_int64: 64-bit integer DEFINE_uint64: unsigned 64-bit integer DEFINE_double: double DEFINE_string: C++ string 比如上文

解析命令行参数的方法

一.关于解析命令行参数的方法 关于"解析命令行参数"的方法我们一般都会用到sys.argv跟optparse模块.关于sys.argv,网上有一篇非常优秀的博客已经介绍的很详细了,大家可以去这里参考:https://www.cnblogs.com/aland-1415/p/6613449.html 这里为大家介绍一个比sys.argv更强大的optparse模块. 这里说一句题外话,点开optparse的源码,第一行注释是这样的:A powerful, extensible, and

3.QT中QCommandLineParser和QCommandLineOption解析命令行参数

 1  新建项目 main.cpp #include <QCoreApplication> #include <QCommandLineParser> #include <QDebug> #include <stdio.h> int main(int argc, char** argv) { QCoreApplication app(argc, argv); app.setApplicationVersion("1.0.0.0");

Python3-argparse模块-解析命令行参数

官方文档 http://python.usyiyi.cn/translate/python_352/library/argparse.html 代码示例 import argparse # 1.获取参数解析对象 parser = argparse.ArgumentParser(description="帮助信息前的一些描述信息,可以不写哦") # 2.添加可解析的参数 # add_argument()函数常用参数 # name or flags 选项字符串的名字或列表,例如foo或者

getopt_long函数解析命令行参数

转载:http://blog.csdn.net/hcx25909/article/details/7388750 每一天你都在使用大量的命令行程序,是不是感觉那些命令行参数用起来比较方便,他们都是使用getopt来实现的. 在Linux下使用getopt写程序是一种比较cool的事情,下面来简单的介绍一下getopt的使用. === getopt使用 === 在讨论参数处理之前,我们先明确两个概念:选项.选项参数gcc -g -o test test.c我们经常使用上面的命令来编译程序,这里g和

java的命令行参数到底怎么用,请给截图和实际的例子

8.2 命令行参数示例(实验)public class Test {public static void main(String[] args){        if(args.length==0){               System.out.println("you don't set command line parameters!");        }else{               for (int i=0; i                     Syst

Linux getopt/getopts解析命令行参数教程

一.说明 shell中获取参数可以直接使用$1.$2等形式来获取,但这种方式有明显的限制:每个参数的位置是固定的.比如如果在设计上$1是ip地址$2是端口,那在执行时就必须第一个参数是ip第二个参数是端口而不能反过来. shell提供了getopt和getopts来解析参数,getopt比getopts功能强一些getopts比getopt简单一些:总体而言getopt和getopts都差强人意. 二.使用getopt解析参数 getopt比getopts强一些复杂一些:能在命令行中单独使用.支