Apache CLI Demo
1. Options
private Options options = new Options();
2. option
(1) way1
launcher.options.addOption("h", "help", false, "show help.");
(2) way2
launcher.options.addOption(optFile);
3. command line parser
CommandLineParser cmdParser = new DefaultParser();
4. exec method
private void help() { // This prints out some help HelpFormatter formater = new HelpFormatter(); formater.printHelp(this.getClass().getSimpleName(), options); System.exit(0); }
5. test
java --SNAPSHOT.jar;C:\Users\xiaobin\.m2\repository\commons-cli\commons-cli\1.4\commons-cli-1.4.jar my.csdn9.ConsoleLauncher --help
ConsoleLauncher.java
package my.csdn9; 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.Option; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; public class ConsoleLauncher { // Step 1: otions private Options options = new Options(); public static void main(String[] args) { // TODO Auto-generated method stub ConsoleLauncher launcher = new ConsoleLauncher(); // Step 2: add option Option optFile = Option.builder( "file" ) .longOpt( "logfile" ) .hasArg(false) .desc( "use given file for log" ) .build(); // Way I: Direct definition launcher.options.addOption("h", "help", false, "show help."); // Way II: Use the option class to define launcher.options.addOption(optFile); // Step 3: cmd parser CommandLineParser cmdParser = new DefaultParser(); try { CommandLine cmd = cmdParser.parse(launcher.options, args); if (cmd.hasOption("h")) { launcher.help(); } if (cmd.hasOption("file")) { System.out.println("----file----"); } } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } // Step 4: exec method private void help() { // This prints out some help HelpFormatter formater = new HelpFormatter(); formater.printHelp(this.getClass().getSimpleName(), options); System.exit(0); } }
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.tdtc</groupId> <artifactId>cliDemo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>cliDemo</name> <dependencies> <dependency> <groupId>commons-cli</groupId> <artifactId>commons-cli</artifactId> <version>1.4</version> </dependency> </dependencies> </project>
Reference:
1. java command line interfaces - part 1: apache commons
Apache CLI Demo的更多相关文章
- 【java】之 apache commons-codec 与Apache Digest demo实例,支持md5 sha1 base64 hmac urlencode
使用commons-codec 进行加密的一些操作 package com.jiepu.ApacheDigest; import java.io.FileInputStream; import org ...
- C# Apache Thrift Demo
转载至 https://headsigned.com/posts/csharp-apache-thrift-demo/ This demo application shows how to imple ...
- 遇见CUBA CLI
原文:Meet CLI for CUBA Platform 翻译:CUBA China CUBA-Platform 官网 : https://www.cuba-platform.com CUBA Ch ...
- Lucene入门-安装和运行Demo程序
Lucene版本:7.1 一.下载安装包 https://lucene.apache.org/core/downloads.html 二.安装 把4个必备jar包和路径添加到CLASSPATH \lu ...
- How-to: Do Real-Time Log Analytics with Apache Kafka, Cloudera Search, and Hue
Cloudera recently announced formal support for Apache Kafka. This simple use case illustrates how to ...
- atitit.跨语言执行cmd cli api的原理及兼容性设计草案
atitit.跨语言执行cmd cli api的原理及兼容性设计草案 1. 标准输入,标准输出,标准错误与重新定向1 2. 常见问题2 2.1. 执行bat文件2 2.2. 执行bat文件 /c ...
- Lucene-安装和运行Demo程序
Lucene是什么 Lucene是一款高性能.可扩展的信息检索工具库.- Lucene In Action Lucene版本:7.1 一.下载安装包 https://lucene.apache.org ...
- Apache Poi实现excel解析
一.说明 1.本文通过使用 poi 工具解析 excel 表格数据,实现导入导出 2.excel目前有两种格式 2003版本的 excel.xls 与 2007版本的 excel.xlsx ,注意两种 ...
- Dubbo源码本地运行demo遇到的问题
从github上拉下来的Dubbo源码,运行Dubbo项目的demo工程,报如下错误(Dubbo版本为2.7.6): Exception in thread "main" java ...
随机推荐
- 用Promise对象实现的 Ajax 操作
- Jmeter分离登录事务的另一种方式
最近,遇到了一个困扰很多人的问题. 情景如下: 业务流程:登录一个网站,反复进行充值. 通常的做法是使用jmeter对登录和充值的接口进行反复的执行: 但是实现的方法却不能完美的贴合业务流程. 并且, ...
- MySQL中视图
视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据.但是,视图并不在数据库中以存储的数据值集形式存在.行和列数据来自由定义视图的查询所引用 ...
- java程序源码
//Account.java package pers.liqin.accounlist; public class Account { private String accountID; priva ...
- linux之 awk
简介awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进 ...
- Ubuntu Nginx Ruby, Rails Mysql 安装
1. Nginx 安装 sudo apt-get install nginx 2. Ruby 安装 sudo apt-get install ruby 查看版本 ruby -v 3. Rails 安装 ...
- tornado请求头/状态码/接口 笔记
set_header()/set_default_headers() set_header():设置请求头数据 set_default_headers():设置默认请求头数据 import torna ...
- Linux paste命令详解
Linux paste命令 Linux paste命令用于合并文件的列.paste指令会把每个文件以列对列的方式,一列列地加以合并 将每个指定文件里的每一行整合到对应一行里写到标准输出,之间用制表符分 ...
- iOS开发 SourceTree将develop合并到master分支的详细步骤
- Google program AB程序的基本理解
这个是2017年机器人项目中涉及到的一点东西,虽然没有派上什么大用场,但是还是有必要在这里记录一下! 1. 初始化Bot A. 配置各种路径,例如aiml,aimlif,config,set,map等 ...