Java命令行参数解析工具jcommander详解

 更新时间:2023年09月08日 11:26:30   作者:追风的电脑桌_XPdvn  
这篇文章主要为大家介绍了Java命令行参数解析工具jcommander命令详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

前言

如果你想构建一个支持命令行参数的程序,那么 jcommander 非常适合你,jcommander 是一个只有几十 kb 的 Java 命令行参数解析工具,可以通过注解的方式快速实现命令行参数解析。这篇教程会通过介绍 jcommadner ,快速的创建一个命令行程序,最后支持的命令参数功能如下图。

这个命令行工具仿照 git 操作命令,主要提供了如下功能命令:git-app.jar -help 查看命令帮助信息。git-app.jar -version 查看当前版本号。git-app.jar clone http://xxxx 通过 URL 克隆一个仓库。git-app.jar add file1 file2 暂存 file1 文件 file2 文件。git-app.jar commit -m "注释" 提交并添加注释。

jcommander 引入截止文章编写时间,最新版本如下:<!-- https://mvnrepository.com/artifact/com.beust/jcommander -->
<dependency>

<groupId>com.beust</groupId>
<artifactId>jcommander</artifactId>
<version>1.82</version>

</dependency>
这个命令行工具仿照 git 操作命令,主要提供了如下功能命令:

git-app.jar -help 查看命令帮助信息。
git-app.jar -version 查看当前版本号。
git-app.jar clone http://xxxx 通过 URL 克隆一个仓库。
git-app.jar add file1 file2 暂存 file1 文件 file2 文件。
git-app.jar commit -m "注释" 提交并添加注释。

jcommander 引入

截止文章编写时间,最新版本如下:

<!-- https://mvnrepository.com/artifact/com.beust/jcommander -->
<dependency>
    <groupId>com.beust</groupId>
    <artifactId>jcommander</artifactId>
    <version>1.82</version>
</dependency>

commander 参数绑定

命令行解析中,参数解析与绑定是最实用的一个场景,jcommander 使用 Parameter 注解进行参数绑定。我们定义一个 GitCommandOptions.java 类来测试参数绑定。

package com.wdbyte.jcommander.v1;
    import com.beust.jcommander.Parameter;
    /**
     * @author https://www.wdbyte.com
     */
    public class GitCommandOptions {
        @Parameter(names = {"clone"},
            description = "克隆远程仓库数据")
        private String cloneUrl;
        public String getCloneUrl() {
            return cloneUrl;
        }
    }

使用 jcommander 结合 GitCommandOptions 来解析参数。

package com.wdbyte.jcommander.v1;
import com.beust.jcommander.JCommander;
/**
 * @author https://www.wdbyte.com
 */
public class GitApp {
    public static void main(String[] args) {
            // args = new String[]{"clone","http://www.wdbyte.com/test.git"};
        GitCommandOptions gitCommandOptions = new GitCommandOptions();
        JCommander commander = JCommander.newBuilder()
            .addObject(gitCommandOptions)
            .build();
        commander.parse(args);
        System.out.println("clone " + gitCommandOptions.getCloneUrl());
    }
}

打包后可以执行命令参数:

$ java -jar git-app.jar clone 

https://www.jb51.net/program/297701twh.htm

这里是一个字符串参数,需要在命令中输出参数值,对于 boolean 类型的参数,不需要传值,有命令即为 true 值。

以上就是Java命令行参数解析工具jcommander详解的详细内容,更多关于Java jcommander命令行参数解析的资料请关注脚本之家其它相关文章!

相关文章

  • SpringSecurity认证流程详解

    SpringSecurity认证流程详解

    这篇文章主要介绍了SpringSecurity认证流程详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • 如何使用MyBatis框架实现增删改查(CRUD)操作

    如何使用MyBatis框架实现增删改查(CRUD)操作

    本文主要介绍了如何使用MyBatis框架实现增删改查(CRUD)操作。首先介绍了MyBatis框架的基本概念和使用方法,然后分别介绍了如何使用MyBatis实现增删改查操作。最后,通过一个简单的示例演示了如何使用MyBatis框架实现CRUD操作。
    2023-05-05
  • 一文浅析Java中的值传递

    一文浅析Java中的值传递

    今天在解决一个问题时,程序总是不能输出正确值,分析逻辑思路没问题后,发现原来是由于函数传递导致了这个情况,下面我们就来看看Java中的值传递到底是什么情况吧
    2023-08-08
  • Java毕业设计实战之药店信息管理系统的实现

    Java毕业设计实战之药店信息管理系统的实现

    这是一个使用了java+SSM+JSP+layui+maven+mysql开发的药店信息管理系统,是一个毕业设计的实战练习,具有药店信息管理该有的所有功能,感兴趣的朋友快来看看吧
    2022-01-01
  • IDEA集成Gitee码云的实现步骤

    IDEA集成Gitee码云的实现步骤

    本文主要介绍了IDEA集成Gitee码云的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • SpringBoot MP简单的分页查询测试实现步骤分解

    SpringBoot MP简单的分页查询测试实现步骤分解

    好久没水后端的东西了,最近在做vue项目写前端的代码,所以cloud也停进度了,吃完饭突然记得我没有在博客里写分页的东西,虽然项目中用到了,但是没有拎出来,这里就拎出来看看
    2023-04-04
  • 浅谈Spring嵌套事务是怎么回滚的

    浅谈Spring嵌套事务是怎么回滚的

    本文主要介绍了Spring嵌套事务是怎么回滚的,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • WIN7系统JavaEE(java)环境配置教程(一)

    WIN7系统JavaEE(java)环境配置教程(一)

    这篇文章主要介绍了WIN7系统JavaEE(java+tomcat7+Eclipse)环境配置教程,本文重点在于java配置,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • Java实现的模糊匹配某文件夹下的文件并删除功能示例

    Java实现的模糊匹配某文件夹下的文件并删除功能示例

    这篇文章主要介绍了Java实现的模糊匹配某文件夹下的文件并删除功能,涉及java针对目录与文件的遍历、匹配、判断、删除等相关操作技巧,需要的朋友可以参考下
    2018-02-02
  • logback的UNDEFINED_PROPERTY属性源码执行流程解读

    logback的UNDEFINED_PROPERTY属性源码执行流程解读

    这篇文章主要为大家介绍了logback的UNDEFINED_PROPERTY属性源码执行流程解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11

最新评论