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 ...
随机推荐
- openstack--1--基础环境搭建
Openstack介绍 OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目. Openstack包含三大项 ...
- KNN算法原理(python代码实现)
kNN(k-nearest neighbor algorithm)算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性 ...
- 1、Zookeeper安装及问题与集群
1.下载zookeeper.tat.gz压缩包 2.解压 tar –xvf file.tar //解压 tar包 tar -xzvf file.tar.gz //解压tar.gz tar -xjvf ...
- PyCharm 连接Git及使用
一.PyCharm配置Git的环境 1.PyCharm 连接Git首先需要本机安装Git软件; 2.PyCharm 版本控制中设置Git的执行路径,file->Setting->Versi ...
- 分页-jquery.page.js插件在使用时重复触发“上一页”和“下一页”操作
HTML代码 <!-- <div class="zxf_pagediv" id="Pagination" style="display:b ...
- 转JMeter ----数据库 not allowed to connect to this MySQL
测试的时候遇到报错: Cannot create PoolableConnectionFactory (null, message from server: "Host 'ceshiP ...
- Visual Studio中设置Nuget程序包源
用vs2015,默认的程序包源是Microsoft and .NET,很多常见的开源包在里面搜索不到. 这时候就需要配置一个更开放的包源,网上搜了一下,都没人提供这个问题,所以自己动脑花了一番脑经,看 ...
- 用shell通过jps -m来杀死进程
#!/bin/sh ### find pid jps=`jps -m` echo "$jps"|while read i do if[[ $i =~"agentTestT ...
- RedHat6.5系统LVM增加新硬盘实现根文件系统扩容
一.新增物理空间 二.linux中创建新分区 1.首先查看硬盘信息,用fdisk -l命令,如果有硬盘有剩余空间就可以对其进行分区. [root@master 桌面]# fdisk -l Disk / ...
- win764位系统上让32位程序能申请到4GB内存方法
win764位系统上让32位程序能申请到4GB内存方法. 2016年09月18日 18:36:26 阅读数:1550 最近测试一个32位程序总是在1.2G左右内存时崩溃,怀疑是内存申请失败,本身32位 ...