Java命令行參數(shù)解析工具jcommander詳解
前言
如果你想構(gòu)建一個(gè)支持命令行參數(shù)的程序,那么 jcommander 非常適合你,jcommander 是一個(gè)只有幾十 kb 的 Java 命令行參數(shù)解析工具,可以通過注解的方式快速實(shí)現(xiàn)命令行參數(shù)解析。這篇教程會(huì)通過介紹 jcommadner ,快速的創(chuàng)建一個(gè)命令行程序,最后支持的命令參數(shù)功能如下圖。

這個(gè)命令行工具仿照 git 操作命令,主要提供了如下功能命令:git-app.jar -help 查看命令幫助信息。git-app.jar -version 查看當(dāng)前版本號。git-app.jar clone http://xxxx 通過 URL 克隆一個(gè)倉庫。git-app.jar add file1 file2 暫存 file1 文件 file2 文件。git-app.jar commit -m "注釋" 提交并添加注釋。
jcommander 引入截止文章編寫時(shí)間,最新版本如下:<!-- https://mvnrepository.com/artifact/com.beust/jcommander -->
<dependency>
<groupId>com.beust</groupId> <artifactId>jcommander</artifactId> <version>1.82</version>
</dependency>
這個(gè)命令行工具仿照 git 操作命令,主要提供了如下功能命令:
git-app.jar -help 查看命令幫助信息。
git-app.jar -version 查看當(dāng)前版本號。
git-app.jar clone http://xxxx 通過 URL 克隆一個(gè)倉庫。
git-app.jar add file1 file2 暫存 file1 文件 file2 文件。
git-app.jar commit -m "注釋" 提交并添加注釋。
jcommander 引入
截止文章編寫時(shí)間,最新版本如下:
<!-- https://mvnrepository.com/artifact/com.beust/jcommander -->
<dependency>
<groupId>com.beust</groupId>
<artifactId>jcommander</artifactId>
<version>1.82</version>
</dependency>commander 參數(shù)綁定
命令行解析中,參數(shù)解析與綁定是最實(shí)用的一個(gè)場景,jcommander 使用 Parameter 注解進(jìn)行參數(shù)綁定。我們定義一個(gè) GitCommandOptions.java 類來測試參數(shù)綁定。
package com.wdbyte.jcommander.v1;
import com.beust.jcommander.Parameter;
/**
* @author https://www.wdbyte.com
*/
public class GitCommandOptions {
@Parameter(names = {"clone"},
description = "克隆遠(yuǎn)程倉庫數(shù)據(jù)")
private String cloneUrl;
public String getCloneUrl() {
return cloneUrl;
}
}使用 jcommander 結(jié)合 GitCommandOptions 來解析參數(shù)。
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());
}
}打包后可以執(zhí)行命令參數(shù):
$ java -jar git-app.jar clone
http://m.fzitv.net/program/297701twh.htm
這里是一個(gè)字符串參數(shù),需要在命令中輸出參數(shù)值,對于 boolean 類型的參數(shù),不需要傳值,有命令即為 true 值。
以上就是Java命令行參數(shù)解析工具jcommander詳解的詳細(xì)內(nèi)容,更多關(guān)于Java jcommander命令行參數(shù)解析的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
如何使用MyBatis框架實(shí)現(xiàn)增刪改查(CRUD)操作
本文主要介紹了如何使用MyBatis框架實(shí)現(xiàn)增刪改查(CRUD)操作。首先介紹了MyBatis框架的基本概念和使用方法,然后分別介紹了如何使用MyBatis實(shí)現(xiàn)增刪改查操作。最后,通過一個(gè)簡單的示例演示了如何使用MyBatis框架實(shí)現(xiàn)CRUD操作。2023-05-05
Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之藥店信息管理系統(tǒng)的實(shí)現(xiàn)
這是一個(gè)使用了java+SSM+JSP+layui+maven+mysql開發(fā)的藥店信息管理系統(tǒng),是一個(gè)畢業(yè)設(shè)計(jì)的實(shí)戰(zhàn)練習(xí),具有藥店信息管理該有的所有功能,感興趣的朋友快來看看吧2022-01-01
SpringBoot?MP簡單的分頁查詢測試實(shí)現(xiàn)步驟分解
好久沒水后端的東西了,最近在做vue項(xiàng)目寫前端的代碼,所以cloud也停進(jìn)度了,吃完飯突然記得我沒有在博客里寫分頁的東西,雖然項(xiàng)目中用到了,但是沒有拎出來,這里就拎出來看看2023-04-04
WIN7系統(tǒng)JavaEE(java)環(huán)境配置教程(一)
這篇文章主要介紹了WIN7系統(tǒng)JavaEE(java+tomcat7+Eclipse)環(huán)境配置教程,本文重點(diǎn)在于java配置,感興趣的小伙伴們可以參考一下2016-06-06
Java實(shí)現(xiàn)的模糊匹配某文件夾下的文件并刪除功能示例
這篇文章主要介紹了Java實(shí)現(xiàn)的模糊匹配某文件夾下的文件并刪除功能,涉及java針對目錄與文件的遍歷、匹配、判斷、刪除等相關(guān)操作技巧,需要的朋友可以參考下2018-02-02
logback的UNDEFINED_PROPERTY屬性源碼執(zhí)行流程解讀
這篇文章主要為大家介紹了logback的UNDEFINED_PROPERTY屬性源碼執(zhí)行流程解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11

