javascript
Java命令行界面(第20部分):JSAP
JSAP ( Java Simple Argument Parser )2.1是本系列文章的第二十篇,重點是處理Java的命令行參數。 JSAP頁面描述了該庫存在的原因:“我在Internet上找到了幾個解析器,所有解析器都處理了開關,但是在解析返回類型和配置文件方面,都沒有我想要的多功能性。”
JSAP提供了相當多的靈活性,但付出了一些復雜性的正常代價。 幸運的是,JSAP提供了一個名為SimpleJSAP的類,它使使用JSAP完成簡單任務變得更加容易。 JSAP文檔以這種方式表達了這一觀點: “如果您想減少處理命令行的代碼量,JSAP提供了一個SimpleJSAP,可以為您完成大部分工作。” 下一個代碼清單演示了在單個(盡管很冗長)語句中使用SimpleJSAP來定義預期的命令行選項。
JSAP的“定義”階段
final SimpleJSAP jsap = new SimpleJSAP("Main Application","Demonstrate JSAP",new Parameter[]{new FlaggedOption("file", STRING_PARSER, NO_DEFAULT, REQUIRED, 'f', "file", "File path/name."),new Switch("verbose", 'v', "verbose", "Requests verbose output." )});對于上面的代碼清單,我使用靜態導入來減少此“定義”代碼的冗長性。 這些可以在GitHub上的完整代碼清單中看到。 上面的代碼定義了本系列中用于解析Java命令行參數的庫中所有文章中使用的兩個選項:文件路徑/名稱和詳細程度。 單個字符'f'和'v'是短選項名稱,而長選項名稱在它們各自的調用( file和verbose )之后。 請注意,命令行參數的“定義”也可以通過XML進行配置 ,盡管此處未演示。
所述“語法分析”階段在司法制度評估方案與其中的調用另一單個語句實現解析(字符串[])上的實例方法SimpleJSAP返回的一個實例JSAPResult 。
JSAP的“解析”階段
final JSAPResult parsedResult = jsap.parse(arguments);JSAP的“詢問”階段是通過調用parse方法返回的JSAPResult實例來完成的,如下面的代碼清單所示。
JSAP的“審訊”階段
out.println("File path/name is '" + parsedResult.getString("file") + "'."); out.println("Verbosity level is " + parsedResult.getBoolean("verbose"));JSAP將生成自動用法和幫助語句。 下一個代碼清單演示了如何使用SimpleJSAP.messagePrinted()方法來確定是否發生了一些解析錯誤,然后使用SimpleJSAP.getHelp()消息來訪問自動生成的“幫助”消息。
JSAP的“幫助”
if (jsap.messagePrinted()) {out.println(jsap.getHelp());System.exit( -1 ); }接下來的兩個屏幕快照演示了如何使用JSAP執行本文中所示的代碼示例。 第一張圖片描述了未提供所需的-f / --file標志時打印的用法說明。 第二幅圖描繪了基于JSAP的示例代碼的正常行為。
選擇框架或庫來幫助Java進行命令行解析時,需要考慮JSAP的特征。
- JSAP是開源的,并獲得了次級GNU公共許可證 (LPGL)的許可 。
- JSAP-2.1.jar JAR文件的大小約為68 KB,基本功能不需要第三方依賴。
- 從XML加載JSAP配置的能力(本文未涵蓋)確實需要XStream 。
- 《 JSAP手冊》更詳細地討論了當有其他可用的Java命令行解析替代方法時, 為什么編寫JSAP的原因 。
- JSAP被其他產品使用 , 受到了一些用戶的好評 ,并且已在Groovy中代替內置的 Apache Commons CLI使用 。
JSAP似乎是較舊的基于Java的命令行解析庫中較流行的一種。 像本文中演示的那樣,基本功能相對容易使用,但是還可以提供更多的靈活性和可定制性,以滿足更復雜的需求。
其他資源
- JSAP v2.1:Java簡單參數解析器
- SourceForge上的JSAP
- JSAP – Java簡單參數解析器(v2.1)手冊
- MvnRepository上的JSAP
- JSAP API文檔 (Javadoc)
- 解析命令行參數– JSAP
- Groovy的命令行參數解析 (使用JSAP)
翻譯自: https://www.javacodegeeks.com/2017/10/java-command-line-interfaces-part-20-jsap.html
總結
以上是生活随笔為你收集整理的Java命令行界面(第20部分):JSAP的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓平板鼠标箭头怎么设置(安卓平板 鼠标
- 下一篇: linux含义是什么(linux 含义