Java命令行界面(第19部分):jClap
本系列中第19篇文章的重點是從Java代碼解析命令行參數是jClap ( Java命令行參數解析器 ),不應將它與稱為JCLAP的庫相混淆,而JCLAP庫是我本系列先前文章的重點。 在以前的帖子覆蓋JCLAP 1.4加爾斯吉爾溫斯坦利( snaq.net ),而這個帖子蓋jClap 2.0由一月所以 ( extreme_logic )。
通過實例化com.extremelogic.common.jclap.Argument的實例并調用名稱為addArgument或addBooleanArgument的重載方法之一,可以在com.extremelogic.common.jclap.Argument實現“定義”階段。 下一個代碼清單( 在GitHub上提供完整代碼)中對此進行了演示。
jClap的“定義”階段
final Argument argument = new Argument(arguments); argument.addArgument("file", "Path/name of file", true, 1); argument.addBooleanArgument("verbose", "Enables verbosity", false);前面的代碼清單演示了提供長參數名稱,參數說明,是否需要參數以及參數期望值的數量。 據我所知,無法為參數添加簡稱(單個連字符和單個字符)。
通過在“定義”階段定義的Argument實例上調用processArguments()方法,可以通過jClap實現“解析”階段。 這是單行調用,但會引發檢查異常ArgumentException 。 下一行代碼清單顯示了這種單行解析。
jClap的“解析”階段
argument.processArguments();使用jClap通過在“定義”階段中定義的Argument實例上調用getArgument方法來實現“詢問”階段。 下一個代碼清單對此進行了演示。
jClap的“審訊”階段
out.println("File path/name is '" + argument.getArgument("file") + "'."); out.println("Verbosity is set to " + argument.getArgument("verbose"));通過在整個示例中使用的Argument實例上調用displayOptions方法,jClap還可以輕松地將用法寫入標準輸出。 在下一個代碼清單中對此進行了演示,該清單顯示了捕獲和“處理”已檢查的異常ArgumentException 。
jClap中的“用法”
catch (final ArgumentException argumentException) {out.println("ERROR: Exception encountered while processing command-line arguments - "+ argumentException);argument.displayOptions(); }屏幕快照演示了本文中涵蓋的代碼,其中將jClap應用于命令行處理。 第一個圖像描述了未指定必需的--file ArgumentException時對檢查到的異常ArgumentException的處理,還描述了jClap提供的用法語句。 第二張圖描繪了參數的常規命令行處理。
選擇框架或庫來幫助Java進行命令行解析時,需要考慮jClap的特征。
- jClap是帶有Apache許可證版本2.0的開源。
- commons-jClap-2.0.0.jar JAR大小約為15 KB,沒有第三方庫依賴項。
- 在我看來,jClap僅支持帶有雙連字符的“長”參數名稱。
- jClap JAR包含使用Java SE 6 ( 主要版本50 )編譯的類文件,因此應與運行在Java SE 6之前的版本的Java應用程序一起使用。
- 所有參數都從Argument實例作為String檢索(沒有類型的參數)。
- jClap JAR還包含一個“樣本”應用程序( SampleArguments.class ),IDE反編譯器(例如IntelliJ IDEA的內置反編譯器和Eclipse的Enhanced Class Decompiler )可以反編譯以查看可以寫入的源代碼類型。使用jClap。
jClap是一個小型易用的庫,用于處理Java的命令行參數,可以與運行在Java SE 6以前的Java版本上的Java應用程序一起使用。該庫僅支持長參數名,并以以下形式返回參數的值: String>/code> type in all cases.
翻譯自: https://www.javacodegeeks.com/2017/10/java-command-line-interfaces-part-19-jclap.html
總結
以上是生活随笔為你收集整理的Java命令行界面(第19部分):jClap的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基金备案流程(基金备案步骤)
- 下一篇: 设置资源限制防ddos攻击怎么解决(设置