Java命令行界面(第22部分):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庫還支持“幫助” /“使用”消息。 在下面的代碼清單中對此進行了演示,如果未指定“文件”選項(如果其“值”為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文件,內容為“ Copyright John E. Lloyd,2004。保留所有權利。 授予使用,復制,修改和再分發的許可,但前提是保留此版權聲明,并在適當的時候給予作者以榮譽。” 關于按“原樣”分發軟件的標準免責聲明。
- argparser.jar的大小約為129 KB,但包含.java源代碼文件, .class編譯文件和Javadoc HTML文件。
- argparser.ArgParser類的Javadoc非常出色,并且是我希望在Javadoc中定期看到基于Java的“主要”類的示例。 這是一個小型開源項目如何一次記錄項目/庫的很好的例子,因為還使用了類的Javadoc并從項目的主頁鏈接到該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
總結
以上是生活随笔為你收集整理的Java命令行界面(第22部分):argparser的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 入川备案过期怎么弄(入川备案过期)
- 下一篇: rete_Rete之外的生活– RIP