日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java命令行界面(第17部分):jw-options

發布時間:2023/12/3 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java命令行界面(第17部分):jw-options 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JavaWorld文章處理Java中的命令行參數: Matthias Laux博士關閉的案例介紹了一個基于Java的簡單庫,用于處理命令行參數 ,在本文中我將其稱為jw-options 。 被引用的文章提供了有關為何在構造Options類時做出某些設計決策的背景信息。 本文的“結論”描述了使用附帶的類和庫的優點:“本文描述了一個Java類,該類允許方便地處理Java程序的命令行選項。 該結構足夠靈活,甚至可以處理復雜的情況,同時提供了API,可以用有限的編碼工作來定義可接受的命令行語法。

此JavaWorld文章介紹的“庫”包含三個Java類: Options , OptionData和OptionSet 。 下面的屏幕快照演示了這一點,該屏幕快照顯示了options.jar的內容。

帶有“ jw-options”的“定義”階段是通過其Options和OptionSet類實現的。 下一個代碼清單中對此進行了演示(完整的代碼清單可在GitHub上找到,并且此處的示例類似于本系列先前文章中使用的示例)。

帶有jw-options的“定義”階段

final Options options = new Options(arguments, Multiplicity.ZERO_OR_ONE); final OptionSet defaultOptions = options.getSet(); defaultOptions.addOption("f", false, Separator.BLANK, Multiplicity.ONCE); defaultOptions.addOption("v", Multiplicity.ZERO_OR_ONE);

剛剛顯示的代碼清單演示了如何使用幾個OptionSet的重載addOption方法。 為了設置文件路徑和名稱( -f )選項,將調用四參數版本,其中包含標志的單字母(f),標志與其參數之間的分隔符(空格)以及應當預期標志的次數(恰好發生一次)。 冗長性的第二個參數(-v)通過調用addOption的兩個參數版本來addOption ,該版本指定標志的字符(v)及其預期出現的次數(零出現或單出現)。

通過調用Options的check方法,可以在“ jw-options”中實現“解析”階段。 顧名思義,此方法也可用于檢查參數的準確性。 下一個代碼清單對此進行了演示。

使用jw-options的“解析”階段

if (!options.check(false, false)) {out.println("ERROR: " + options.getCheckErrors());System.exit(-1); }

在剛剛顯示的“解析”示例中,使用了Options類的方法getCheckErrors()來訪問解析后的參數中的錯誤,這些錯誤導致Options.check方法返回false 。

下一個代碼清單中演示了帶有“ jw-options”的“詢問”階段。

jw-options的“審訊”階段

out.println("File path/name is " + defaultOptions.getOption("f").getResultValue(0)); out.println("Verbosity is set to " + defaultOptions.isSet("v"));

“詢問”示例演示了如何使用OptionSet的getOption方法訪問表示“ -f”選項的選項,然后調用其getResultValue(0)方法訪問與該“ -f”關聯的第一個(也是在這種情況下)值”標志。 該示例的第二行僅通過使用OptionSet的方法isSet查詢是否已指定“ -v”標志(并且不必擔心或期望與該標志關聯的值)。

接下來顯示一個屏幕快照,以演示到目前為止顯示的使用“ jw-options”的代碼。 該圖顯示了未提供預期的命令行參數時報告的消息,并以兩個示例按預期使用命令行標志結尾。

選擇框架或庫來幫助Java進行命令行解析時,要考慮“ jw-options”的特征。

  • “ jw-options”“庫”是開放源代碼,因為它的源代碼已在JavaWorld文章“ 在Java中處理命令行參數:關閉案例且源代碼包含在JAR中可供下載 ”中進行了全面介紹和討論。 作為jw-0816-command.zip ZIP文件。” 但是,該“圖書館”的許可證并不明顯。
  • “ jw-options”庫很小: options.jar文件的大小約為13 KB。
  • 據我所知,沒有辦法用“ jw-options”用雙連字符指定“長”標志名。
  • 在“ jw-options” jar中的類上運行的javap命令顯示“ main version:49 ”,這意味著它是針對J2SE 5編譯的,并且可以與運行于J2SE 5的 Java上的應用程序一起使用(我注意到在Java中使用StringBuffer代碼在StringBuilder也可以正常工作)。

這篇文章中討論的“ jw-options”“庫”最有可能引起那些需要將命令行處理庫與舊版Java結合使用或對學術有興趣的人。 因為此“庫”在相關的JavaWorld文章中進行了詳細描述,并且因為它是開源的,所以人們可以仔細閱讀代碼并查看該文章,以了解其如何完成命令行解析以及為什么使用這種方法。 鑒于“ jw-options”的許可證不明顯,并且鑒于這是一個相對“老”的庫,似乎沒有收到更新,因此大多數Java開發人員可能更喜歡本文檔中介紹的某些替代庫。在許多情況下,“ jw-options”上的序列。

其他參考

  • JavaWorld文章: 在Java中處理命令行參數:案例關閉
  • 下載源代碼和庫Zip文件

翻譯自: https://www.javacodegeeks.com/2017/10/java-command-line-interfaces-part-17-jw-options.html

總結

以上是生活随笔為你收集整理的Java命令行界面(第17部分):jw-options的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。