Java命令行参数解析工具jcommander详解
作者:追风的电脑桌_XPdvn
前言
如果你想构建一个支持命令行参数的程序,那么 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命令行参数解析的资料请关注脚本之家其它相关文章!