argparser_Java命令行界面(第22部分):argparser
argparser
John Lloyd的argparser是本系列的第二十二篇有關基于Java的命令行參數解析的文章中介紹的庫。 該庫的主頁除了提供單個源代碼示例外,還提供了指向基于Javadoc的API文檔 ,JAR文件,ZIP文件和TAR文件的鏈接。 本帖子中使用的示例與本系列的前二十一個帖子中使用的示例相似,并處理文件路徑/名稱和詳細選項。 完整的代碼清單可在GitHub上找到 。
“定義”階段是在argparser中完成的,其中“ Holder”類的實例表示傳遞給ArgParser實例的addOption(String,Object)方法的預期選項。 下一個代碼清單中對此進行了演示。
argparser的“定義”階段
final StringHolder file = new StringHolder(); final BooleanHolder verbose = new BooleanHolder();final ArgParser parser = new ArgParser("java examples.dustin.commandline.argparser.Main"); parser.addOption ("-f,--file %s #Path and name of file", file); parser.addOption ("-v,--verbose %v #Verbosity enabled?", verbose);本系列中的許多有關從Java解析命令行參數的庫都具有使用單個參數,單個方法或單個注釋元素明確說明的選項特征。 如代碼清單所示,argparser會將選項的屬性拼寫在argparser解析的“規范”字符串中。
“解析”階段是在argparser中完成的,方法是將帶有命令行參數的String[]傳遞給ArgParser類的matchAllArgs(String [])方法。 下一條代碼清單中顯示了該單個語句。
用argparser進行“解析”階段
parser.matchAllArgs(arguments);“查詢”階段是在argparser中通過訪問相應“持有人”類中稱為“ 值 ”的public字段來完成的。 這顯示在下一個代碼清單中。
argparser的“審訊”階段
out.println("File path/name is: " + file.value); out.println("Verbosity is: " + verbose.value);argparser庫還支持“幫助” /“使用”消息。 在下一個代碼清單中對此進行了演示,如果未指定“ file”選項(如果其“ value”為null ),則在其中編寫用法。
argparser的“用法”
if (file.value == null) {out.println("ERROR: File path/name was not specified! Use -f or --file to specify file path/name.\n"+ parser.getHelpMessage()); }接下來顯示的屏幕快照演示了本文中涉及的示例。 第一個圖像顯示了未指定所需的“文件”選項時argparser提供的“用法”。 第二個圖像顯示了長和短選項名稱的使用。
選擇框架或庫來幫助Java進行命令行解析時,需要考慮argparser的特征。
- Arparser是開源的。 對我來說,尚不清楚它是否已獲得任何特定許可的許可,但是JAR附帶有一個COPYRIGHT文件,內容為“版權所有John E. Lloyd,2004。保留所有權利。 授予使用,復制,修改和再分發的許可,但前提是保留此版權聲明,并在適當的時候給予作者以榮譽。” 關于按“原樣”分發軟件的標準免責聲明。
- argparser.jar的大小約為129 KB,但包含.java源代碼文件, .class編譯文件和Javadoc HTML文件。
- argparser.ArgParser類的Javadoc非常出色,并且是我希望在Javadoc中定期看到基于Java的“主要”類的示例。 這是一個很好的示例,說明小型開源項目如何一次記錄項目/庫,因為還使用了類的Javadoc并從項目的主頁鏈接到該類。 該類級別的Javadoc甚至包括SimpleExample源代碼(也位于分布式JAR文件中),以提供有關如何使用類和庫的示例。
- 因為argparser是使用“ 主要版本:46 ”編譯的,所以它應與早于JDK 1.2的Java版本一起運行!
argparser庫很小,易于使用。 對于那些希望使用小型庫完成基本命令行處理的人來說,它可能最有吸引力,尤其對于那些仍然可能在老版本的JDK中運行其基于Java的命令行處理代碼的人,它尤其有吸引力。 使該庫與本系列中的許多其他庫不同的幾件事是其出色的基于Javadoc的API文檔以及其針對選項特征的字符串規范方法。
其他參考
- argparser項目頁面
- argparser API文檔 (Javadoc)
- argparser.jar下載
翻譯自: https://www.javacodegeeks.com/2017/10/java-command-line-interfaces-part-22-argparser.html
argparser
總結
以上是生活随笔為你收集整理的argparser_Java命令行界面(第22部分):argparser的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 菜鸟裹裹达人怎么取消
- 下一篇: java rop_Java命令行界面(第