Java命令行參數(shù)解析工具jcommander詳解
前言
如果你想構(gòu)建一個支持命令行參數(shù)的程序,那么 jcommander 非常適合你,jcommander 是一個只有幾十 kb 的 Java 命令行參數(shù)解析工具,可以通過注解的方式快速實現(xiàn)命令行參數(shù)解析。這篇教程會通過介紹 jcommadner ,快速的創(chuàng)建一個命令行程序,最后支持的命令參數(shù)功能如下圖。
這個命令行工具仿照 git 操作命令,主要提供了如下功能命令:git-app.jar -help 查看命令幫助信息。git-app.jar -version 查看當(dāng)前版本號。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 查看當(dāng)前版本號。
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 參數(shù)綁定
命令行解析中,參數(shù)解析與綁定是最實用的一個場景,jcommander 使用 Parameter 注解進(jìn)行參數(shù)綁定。我們定義一個 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://chabaoo.cn/program/297701twh.htm
這里是一個字符串參數(shù),需要在命令中輸出參數(shù)值,對于 boolean 類型的參數(shù),不需要傳值,有命令即為 true 值。
以上就是Java命令行參數(shù)解析工具jcommander詳解的詳細(xì)內(nèi)容,更多關(guān)于Java jcommander命令行參數(shù)解析的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
詳解Lombok安裝及Spring Boot集成Lombok
這篇文章主要介紹了詳解Lombok安裝及Spring Boot集成Lombok,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03解析WeakHashMap與HashMap的區(qū)別詳解
本篇文章是對WeakHashMap與HashMap的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05IDEA中程序包Org.Springframework.Boot不存在問題及解決
這篇文章主要介紹了IDEA中程序包Org.Springframework.Boot不存在問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07java 基礎(chǔ)之final、finally和finalize的區(qū)別
這篇文章主要介紹了java 基礎(chǔ)之final、finally和finalize的區(qū)別的相關(guān)資料,需要的朋友可以參考下2017-05-05