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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

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

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

java登錄界面命令

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

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

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")});

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

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

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

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

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類還具有g(shù)etResult s方法,這些方法返回List<CmdLnResult>來訪問多個(gè)已解析的選項(xiàng)。 上面的示例演示了如何檢查getResult()方法調(diào)用的結(jié)果是否為null以確定是否設(shè)置了選項(xiàng)。 GitHub上提供了用于此帖子的Java應(yīng)用程序的完整源代碼,并使用CmdLn.present(char)而不是null檢查來確定選項(xiàng)的存在。 區(qū)別可以在這里看到 。

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

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

選擇Ostermiller Java實(shí)用程序CmdLn的一些其他特征時(shí),需要選擇框架或庫(kù)來幫助Java進(jìn)行命令行解析。

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

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

其他參考

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

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

java登錄界面命令

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。