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

歡迎訪問 生活随笔!

生活随笔

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

java

java登录界面命令_Java命令行界面(第11部分):CmdLn

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

java登錄界面命令

這篇文章介紹了如何使用Ostermiller Java Utilities 1.08.02的CmdLn(Java命令行解析器)來處理基于Java的應用程序中的命令行參數。 Ostermiller Java實用程序包括幾種不同類型的實用程序 ,但本文的重點是組件頁面上描述的“命令行解析器”,“處理Java命令行程序的選項和參數”。

Ostermiller Utilities命令行解析器不使用注釋,而是使用具有流暢API概念的程序生成器,而其他一些基于Java的命令行解析庫也使用了API來代替注釋。 com.Ostermiller.util.CmdLn和com.Ostermiller.util.CmdLnOption類在使用CmdLn進行命令行處理的“定義”階段一起使用。 下一個代碼清單中對此進行了演示。

CmdLn處理的“定義”階段

public static void main(final String[] arguments) {final CmdLn cmdLn= new CmdLn(arguments).setDescription("Demonstrates CmdLn").addOptions(new CmdLnOption[]{new CmdLnOption("help",'h'),new CmdLnOption("file",'f').setRequiredArgument().setArgumentBounds(1, 1).setDescription("Path and name of file"),new CmdLnOption("verbose", 'v').setOptionalArgument().setArgumentBounds(0, 0).setDescription("Enable verbosity")});

在剛剛顯示的代碼清單中,定義了三個選項。 一個選項是“幫助”選項,另外兩個選項( -h / --help和-v / --verbose )是本系列中其他有關Java命令行解析的文章中使用的選項。 該代碼說明可以為使用/幫助信息的每個選項設置一個描述,并且可以指定每個選項是必需的還是可選的。 setArgumentBounds(int,int)方法用于指定每個選項期望的參數的最小值和數量。 file選項應該始終只有一個參數(文件的路徑和名稱),因此其最小值和最大值均為1。verbosity選項應該沒有參數(其存在表示啟用了verbosity),因此其最小值和最大值的參數都為0。

Ostermiller Java實用工具命令行解析器提供了三種方法來“定義”要解析的內容。 上面顯示的方法在CmdLn頁面上稱為“按名稱命名的選項”方法。 這些頁面還演示了定義命令行選項的方法,這些選項將使用“ Option Enum”和“ Call to Listeners”方法進行解析(本文中未演示)。

通常,在有關使用基于Java的庫進行命令行解析的文章中,在介紹了如何實現“定義”階段之后,我將介紹如何實現“解析”階段。 但是,使用Ostermiller Utilities命令行解析器時,“解析”階段是隱式的,因此在首先介紹“詢問”階段之后,我將返回到該階段。

通過在CmdLn實例上調用重載的getResult()方法之一來實現“詢問”階段。 如果重載的getResult(-)方法返回null ,則該選項不存在(或在解析過程中找不到)。 如果該重載方法返回非null值,則該值將為CmdLnResult類型,并表示已解析的選項。 返回的CmdLnResult實例提供了用于訪問與該選項關聯的一個或多個參數的方法(例如,在我的示例中,訪問-f / --file選項的路徑和文件名)。 下一個代碼清單中將演示這種“詢問”。

CmdLn的“審訊”階段

if(cmdLn.getResult('h') != null) {cmdLn.printHelp();System.exit(0); }String fileName = null; if(cmdLn.getResult('f') != null) {fileName = cmdLn.getResult('f').getArgument(); } else {out.println("Required parameter -f|--file not provided.\n" + cmdLn.getHelp());System.exit(-1); }boolean verbose = false; if (cmdLn.getResult('v') != null) {verbose = true; } out.println("File path/name is " + fileName + " and verbosity is set to " + verbose);

CmdLn類還具有getResult s方法,這些方法返回List<CmdLnResult>來訪問多個已解析的選項。 上面的示例演示了如何檢查getResult()方法調用的結果是否為null以確定是否設置了選項。 GitHub上提供了用于此帖子的Java應用程序的完整源代碼,并使用CmdLn.present(char)而不是null檢查來確定選項的存在。 區別可以在這里看到 。

Ostermiller Java實用程序命令行解析器不需要顯式的“解析”調用。 相反,先前討論的“詢問”方法( getResult和getResults重載版本)在調用時進行隱式解析。 這些方法中的每一個都調用public方法CmdLn.parse() ,但實際上只在第一個調用時進行解析,因為該實例將解析一個boolean值,該boolean值指示該實例無需在隨后對getResult或getResults方法的調用中再次進行解析。 。

接下來的三個屏幕快照演示了如何使用Ostermiller Java Utilities命令行解析器對該簡單Java應用程序進行使用。 當未指定任何參數(包括所需的文件路徑/名稱參數)時,第一張圖像描述了輸出。 第二張圖描述了當指定--help或-h選項時生成的幫助/用法輸出,并顯示在這種情況下沒有關于丟失參數的錯誤消息。 第三個屏幕快照演示了使用文件的簡短形式和冗長形式以及詳細信息選項的簡單應用程序的“快樂路徑”執行。

選擇Ostermiller Java實用程序CmdLn的一些其他特征時,需要選擇框架或庫來幫助Java進行命令行解析。

  • CmdLn所屬的Ostermiller Java實用程序是開源的, OstermillerUtils許可證是GNU通用公共許可證版本2 (GPL)。 com.Ostermiller.util許可常見問題解答說明了為什么選擇GPL以及避免將這些庫“用于封閉源應用程序”的愿望。
  • CmdLn是更大的Ostermiller Java實用程序的一部分,可以作為單個JAR來使用。 ostermillerutils-1.08.02.jar大小約為272 KB,并且不需要第三方JAR(不需要其他外部依賴項)。
  • Ostermiller Java實用程序需要J2SE 5或更高版本。
  • 近年來,Ostermiller Java實用程序未見更新,但是版本歷史記錄詳細說明了這些實用程序的長期可用性。

Ostermiller Java實用工具的命令行解析器部分很容易用于基本的命令行解析,并完成了工作。 但是,與本系列中討論的大多數基于Java的開源命令行處理庫相比,Ostermiller Java實用程序具有更嚴格的許可。 另外,需要包括整個Ostermiller Java實用程序JAR才能獲得命令行處理功能,而對于某些簡單的命令行驅動的應用程序而言,這可能會感到有些沉重。 我相信Ostermiller Java實用工具提供的命令行解析實用工具對于其應用程序已經將Ostermiller Java實用工具用于其提供的其他實用工具的開發人員而言,將最為有吸引力。

其他參考

  • CmdLn:Java命令行解析器
  • CmdLn OstermillerUtils JavaDoc
  • 源代碼 (托管在ostermiller.org)
  • 下載com.Ostermiller.util Java實用程序
  • Facebook上的Ostermiller Java實用程序
  • Maven上的Ostermiller Java實用程序(1.07.00)
  • GitHub上的Ostermiller實用程序: stephenostermiller / ostermillerutils

翻譯自: https://www.javacodegeeks.com/2017/08/java-command-line-interfaces-part-11-cmdln.html

java登錄界面命令

總結

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

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