Java命令行解析工具Apache CLI

Apache Common-cli简单使用 概述 Apache Commons CLI是开源的命令行解析工具,它可以帮助开发者快速构建启动命令,并且帮助你组织命令的参数、以及输出列表等。 commons-cli 支持以下风格的命令行参数解析: POSIX 风格 如: tar -zxvf foo.tar.gz GNU 长参数风格: du --human-readable --max-depth=1 Java 属性风格: java -Djava... 阅读详情

Apache Commons CLI 是 Apache 下面的一个解析命令行输入的工具包,该工具包还提供了自动生成输出帮助文档的功能。

Apache Commons CLI 支持多种输入参数格式,主要支持的格式有以下几种:

  1. POSIX(Portable Operating System Interface of Unix)中的参数形式,例如 tar -zxvf foo.tar.gz
  2. GNU 中的长参数形式,例如 du --human-readable --max-depth=1
  3. Java 命令中的参数形式,例如 java -Djava.net.useSystemProxies=true Foo
  4. 短杠参数带参数值的参数形式,例如 gcc -O2 foo.c
  5. 长杠参数不带参数值的形式,例如 ant – projecthelp

随着科学计算可视化及多媒体技术的飞速发展,人机交互技术不断更新,但是最传统的命令行模式依然被广泛的应用于多个领域,因为命令行界面要较图形用户界面节约更多的计算机系统资源。在熟记命令的前提下,使用命令行界面往往要较使用图形用户界面的操作速度要快。同时,命令行模式也更加有利于客户进行二次开发,方便应用程序的整合。Apache Commons CLI 提供了很多实用的工具和类实现,进一步方便了我们对命令行工具的开发。

import org.apache.commons.cli.*;

public class Test {

    public static void main(String[] args) throws ParseException {
        // for test
        String[] Args0 = {"-h"};
        String[] Args1 = {"-i", "192.168.1.1", "-p", "8443", "-t", "https"};

        Option help = new Option("h", "the command help");
        Option user = OptionBuilder.withArgName("type").hasArg().withDescription("target the search type").create("t");

        // 此处定义参数类似于 java 命令中的 -D<name>=<value>
        Option property = OptionBuilder.withArgName("property=value").hasArgs(2).withValueSeparator().withDescription
                ("search the objects which have the target property and value").create("D");
        Options opts = new Options();
        opts.addOption(help);
        opts.addOption(user);
        opts.addOption(property);

        // do test
//        simpleTest(args);
        simpleTest(Args1);
    }

    /////////

    public static void simpleTest(String[] args) {
        Options opts = new Options();
        opts.addOption("h", false, "HELP_DESCRIPTION");
        opts.addOption("i", true, "HELP_IPADDRESS");
        opts.addOption("p", true, "HELP_PORT");
        opts.addOption("t", true, "HELP_PROTOCOL");
        CommandLineParser parser = new BasicParser();
//        CommandLineParser parser = new GnuParser ();
//        CommandLineParser parser = new PosixParser();
        CommandLine cl;
        try {
            cl = parser.parse(opts, args);
            if (cl.getOptions().length > 0) {
                if (cl.hasOption('h')) {
                    HelpFormatter hf = new HelpFormatter();
                    hf.printHelp("May Options", opts);
                } else {
                    String ip = cl.getOptionValue("i");
                    String port = cl.getOptionValue("p");
                    String protocol = cl.getOptionValue("t");
                    System.out.println(ip);
                    System.out.println(port);
                    System.out.println(protocol);
                }
            } else {
                System.err.println("ERROR_NOARGS");
            }
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}


Java命令行选项解析之Commons-CLI & Args4J & JCommander NULL 博文链接:https://rensanning.iteye.com/blog/2161201 立即下载

相关推荐

【雷达仿真 | FMCW TDMA-MIMO毫米波雷达信号处理仿真(可修改为DDMA-MIMO)】

1、FMCW叫做调频连续波,调频连续波有步进调频连续波(SFMCW)、线性调频连续波(LFMCW),以及其他非线性调频连续波。LFMCW有锯齿波和三角波等等;锯齿波有恒定调制周期的锯齿波和非恒定周期的锯齿波。Introduction to mmwave sensing:FMCW radars.pdf和The fundamentals of millimeter wave sensors。2、MIMO是多输入多输出(Multiple input Multiple output),也就是多发多收。

【调皮连续波】雷达技术领域知识博主 1万+

Apache Common CLI 如何实现命令行解析

Apache Commons CLI 提供了一个解析传递给程序的命令行选项的 API 类库。此外它还能够打印帮助消息,详细说明命令行工具的可用选项。

SmartSi 997

500多种目标检测数据集下载地址汇总(YOLO、VOC)

【目标检测】红外物体检测-人、自行车、公交、小车、摩托车、骑行者、动物等15000张YOLO+VOC(含部分截取增强图).zip。【目标检测】医用个人防护装备检测数据集981张5类别(口罩、工作服、护目镜、手套、面罩检测数据集)VOC+YOLO格式.zip。【目标检测】车辆分类数据集1880张7类VOC+YOLO(含摩托车、救护车、消防车、警车、警用摩托车、轿车、大车).zip。【目标检测】隐翅虫数据集386张VOC+YOLO【目标检测】隐翅虫数据集386张VOC+YOLO【目标检测】隐翅虫数据集。

2401_85863780的博客 9160

Apache Commons CLI:构建命令行应用的利器

在Apache Commons CLI中,一切都围绕着Options类展开。这个类用来定义咱们的命令行参数。每个Option对象都代表一个参数。我们可以定义参数的短名称、长名称、描述,甚至指定是否需要附加值。例如,假设小黑要开发一个简单的文件处理工具,这个工具需要接收输入文件路径和一个可选的输出文件路径。Option input = new Option("i", "input", true, "输入文件路径");// 这是一个必需的选项。

宋小黑的博客 2662

ADS新手必看:用Filter DesignGuide快速搞定一个4GHz LC低通滤波器(附保姆级避坑指南)

本文为ADS新手提供了4GHz LC低通滤波器的完整设计流程,重点介绍了如何使用Filter DesignGuide避免参数设置陷阱、正确解读仿真结果以及解决实际电路与理论值的偏差问题。通过真实工程案例,详细讲解了工程创建、Filter DesignGuide配置、电路优化、仿真设置及实际工程中的进阶技巧,帮助工程师快速掌握LC滤波器设计。

weixin_30878501的博客 301

2026年AI技能进阶指南:从提示词工程到智能体开发实战

提示词工程作为AI时代的基础沟通技能,其核心原理是通过系统化的交互方法论实现与大模型的高效对话。这项技术通过明确性、具体性和可操作性的设计原则,显著提升了AI生成内容的质量和实用性。在工程实践层面,提示词工程已经发展出角色扮演、步骤分解等成熟模式,广泛应用于代码生成、技术方案设计等场景。随着AI智能体开发的兴起,提示词工程进一步演化为定义智能体身份认知和行为规范的系统接口设计,成为构建自主AI系统的关键技术基础。掌握从基础提示词到智能体开发的完整技能栈,能够帮助开发者在AI技术浪潮中保持核心竞争力。

weixin_33139275的博客 333

Apache Common CLI 使用方法

Apache Common CLI 用于开发命令行工具,可以实现命令参数的解析。本文章讲解了common cli的api,接口、使用案例,包括formatter打印帮助信息、DefaultParser 等

u011843342的博客 386

半导体设备隔振必看:如何用天棚阻尼PID控制实现VC-C级振动抑制(含SIMULINK模型)

本文深入探讨了在半导体精密制造中,如何运用天棚阻尼PID控制算法实现VC-C级振动抑制。通过构建高保真单自由度仿真模型,详细解析了从算法原理、SIMULINK实现到参数整定的全链路方案,并针对谐波扰动提供了陷波滤波器设计方法,为工程师提供了从仿真到实践的完整主动隔振技术指南。

pz89012345的博客 538

commons.cli命令行交互

public static void main(String[] args) throws ParseException { String[] p = {"-h"}; parse(p, "test"); } public static void parse(String[] args, String cmdName) throws ParseException { Op...

p7+的博客 513

本体(Ontology)概述

认识本体        本体(Ontology)的概念源自于哲学领域,在哲学中的定义为“对世界上客观事物的系统描述,即存在论”。哲学中的本体关心的是客观现实的抽象本质。而在计算机领域,本体可以在语义层次上描述知识,可以看成描述某个学科领域知识的一个通用概念模型。德国学者Studer在1998年给出了本体的相关定义“本体是共享概念模型的形式化规范说明”。这个定义包含了四层含义:即共享(share)...

baijinswpu的博客 7万+

Warning-[INFL_DELTA] Too many events zero delay loop

项目场景: 运用VCS工具执行仿真的时候,遇到如下错误提示,但仿真还在继续。 Warning-[INFL_DELTA] Too many events Possible zero delay loop. Too many events in the simulation at time 0 fs. 问题描述: 为什么会有这个问题; 什么导致了这个问题; 原因分析: 1、为什么会有这个问题 由于竞争条件或编码风格不明确,可能会产生零延时回路,导致仿真挂起或仿真时间无限。 2、什么导致了这个问题 举

hh199203的博客 1万+

java commons cli_Commons CLI 入门及代码简单分析

前言以前写过一些命令行程序,在需要带参数的时候都是自己来判断args,导致程序光解析args都占了好大一堆,而且解析代码也不美观。偶然间发现了apache公共库中的cli库,在这里分享给大家。入门commons-cli中把解释参数分为三种状态,分别是定义、解释和询问交互。接下来,我以一个例子做一下说明:maven库:commons-clicommons-cli1.3.1import org.apa...

weixin_31110189的博客 709

人工智能训练师三级补贴3120元申领全攻略|条件+流程+五省市对比

补贴是真的,但不是"白给"的。你需要满足社保、户籍、时间等条件,严格按照流程操作。记住四件事先确认自己是否满足条件,再报名——别考完了才发现领不到紧缺工种补贴更高——确认你所在城市是否在紧缺目录中证书下发后12个月内申请——设个日历提醒材料准备齐全再提交——避免来回折腾如果你正在考虑考人工智能训练师三级证书,想要从报名到备考到拿证到申领补贴的完整一站式指南,欢迎查看我的付费专栏:📖《人工智能训练师三级·从零到拿证完全指南》80篇系统化内容,覆盖报名、备考、冲刺、拿证全流程。

白话机器学习 1527

Apache Commons CLI 学习

CommandLine 命令的使用学习

wind1_rain的博客 515

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

HoRain云--Java命令行参数解析全攻略

本文介绍了Java中读取命令行参数的多种方法:1)直接遍历main方法参数数组;2)处理特定位置参数;3)推荐使用Apache Commons CLI库处理复杂参数;4)内置简单参数解析;5)处理不同类型参数;6)提供实用命令行工具模板。针对不同需求给出了实现方案,从基础到进阶,涵盖参数验证、类型转换等功能,并建议根据项目复杂度选择合适方法。文章最后提供了使用建议和开发提示。

2401_86544677的博客 691

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

args4j与Apache Commons CLI对比分析:哪个更适合你的项目?

在Java命令行解析工具中,args4j和Apache Commons CLI是两款备受开发者青睐的解决方案。args4j作为轻量级注解驱动工具,以简洁的API和低侵入性著称;而Apache Commons CLI作为Apache基金会的经典项目,凭借丰富的功能和广泛的社区支持占据一席之地。本文将从易用性、功能特性、性能表现和适用场景四个维度,为你深入对比这两款工具的核心差异,助你快速判断哪个更适

gitblog_00670的博客 278

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Java命令行开发:@Option注解全解析

Java开发中,@Option注解主要用于命令行解析库(如Picocli、Apache Commons CLI等),而非Spring框架。它通过注解方式将命令行参数映射到Java对象,支持定义参数名称、描述、是否必填和默认值等属性。Picocli库的@Option最为推荐,提供类型自动转换、参数分组和互斥等高级功能,适用于开发CLI工具、批处理任务等场景。相比手动解析方案,@Option注解方式更简洁高效,能自动生成帮助文档并验证参数合法性,是构建Java命令行工具的核心技术。

2301_80215285的博客 624

Apache Commons CLI 使用教程

Apache Commons CLI 使用教程 项目介绍 Apache Commons CLI 是一个开源的命令行解析工具,它可以帮助开发者快速构建启动命令,并且帮助你组织命令的参数、以及输出列表等。CLI 分为三个过程:定义阶段、解析阶段和询问阶段。 项目快速启动 安装 首先,你需要在你的项目中引入 Apache Commons CLI 的依赖。如果你使用的是 Maven,可以在 pom.xml...

gitblog_00398的博客 656

使用 Apache Commons CLI 开发命令行工具示例

文章链接:https://my.oschina.net/cloudcoder/blog/363793 概念说明 Apache Commons CLI 简介         Apache Commons CLI 是 Apache 下面的一个解析命令行输入的工具包,该工具包还提供了自动生成输出帮助文档的功能。     Apache Commons CLI 支持多种输入参数格

liuxiangke0210的专栏 791

apache commons cli 使用说明

概念说明Apache Commons CLI 简介 Apache Commons CLI 是 Apache 下面的一个解析命令行输入的工具包,该工具包还提供了自动生成输出帮助文档的功能。 Apache Commons CLI 支持多种输入参数格式,主要支持的格式有以下几种: 1....

chuohanwan1259的博客 1177

Java Apache Commons CLI

commons-cli是一个解析命令行输入的工具包。 能够让我们的Java程序实现类似如下的效果: [root@upupfeng ~]# ls --help Usage: ls [OPTION]... [FILE]... -a, --all do not ignore entries starting with . -A, --almost-all do not list implied . and .. --author

upupfeng的博客 814

Java命令行参数解析的多种处理方式

本文介绍了Java中处理命令行参数的8种方法,从基础到高级,满足不同场景的需求。首先,基础处理方式包括直接遍历数组和通过索引访问参数,适用于简单场景。其次,键值对参数解析方法支持-key value形式的参数,并扩展了标志参数的处理。接着,介绍了使用Apache Commons CLI库进行专业级命令行解析,支持必选参数验证和自动生成帮助信息。此外,还介绍了Picocli框架,通过注解方式简化命令行参数配置,并支持自动生成帮助文档和颜色输出。最后,提到了JCommander库,提供了另一种流行的命令行解析方

记录学习的过程 557

Java中的参数解析

大家好,我是城南。

weixin_46372265的博客 1165
上一篇: Java内省机制IntroSpector
下一篇: 简单解析类文件(*.Class)的编译版本
conquer0715
博客等级 码龄18年 73粉丝 147原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值