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)前版本號(hào)。git-app.jar clone http://xxxx 通過 URL 克隆一個(gè)倉(cāng)庫(kù)。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)前版本號(hào)。
git-app.jar clone http://xxxx 通過 URL 克隆一個(gè)倉(cāng)庫(kù)。
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è)場(chǎng)景,jcommander 使用 Parameter 注解進(jìn)行參數(shù)綁定。我們定義一個(gè) GitCommandOptions.java 類來(lái)測(cè)試參數(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)程倉(cāng)庫(kù)數(shù)據(jù)") private String cloneUrl; public String getCloneUrl() { return cloneUrl; } }
使用 jcommander 結(jié)合 GitCommandOptions 來(lái)解析參數(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://www.dbjr.com.cn/program/297701twh.htm
這里是一個(gè)字符串參數(shù),需要在命令中輸出參數(shù)值,對(duì)于 boolean 類型的參數(shù),不需要傳值,有命令即為 true 值。
以上就是Java命令行參數(shù)解析工具jcommander詳解的詳細(xì)內(nèi)容,更多關(guān)于Java jcommander命令行參數(shù)解析的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
詳解Lombok安裝及Spring Boot集成Lombok
這篇文章主要介紹了詳解Lombok安裝及Spring Boot集成Lombok,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2019-03-03Java實(shí)現(xiàn)簡(jiǎn)易五子棋小游戲
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)易五子棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05解析WeakHashMap與HashMap的區(qū)別詳解
本篇文章是對(duì)WeakHashMap與HashMap的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05Java中的動(dòng)態(tài)代理實(shí)現(xiàn)代碼實(shí)例
這篇文章主要介紹了Java中的動(dòng)態(tài)代理實(shí)現(xiàn)代碼實(shí)例,jdk動(dòng)態(tài)代理本質(zhì)上是使用被代理對(duì)象的類加載器,通過被代理類實(shí)現(xiàn)的接口在運(yùn)行時(shí)動(dòng)態(tài)構(gòu)造出代理類來(lái)增強(qiáng)原始類的功能的方法,需要的朋友可以參考下2023-12-12IDEA中程序包Org.Springframework.Boot不存在問題及解決
這篇文章主要介紹了IDEA中程序包Org.Springframework.Boot不存在問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07java 基礎(chǔ)之final、finally和finalize的區(qū)別
這篇文章主要介紹了java 基礎(chǔ)之final、finally和finalize的區(qū)別的相關(guān)資料,需要的朋友可以參考下2017-05-05