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

歡迎訪問 生活随笔!

生活随笔

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

java

java调用命令行命令_Java命令行界面(第4部分):命令行

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

java調(diào)用命令行命令

我的Java命令行解析系列的第四部分介紹了Commandline ,它被描述為 “用于解析命令行參數(shù)的Java庫”,它“基于使用注釋從命令行參數(shù)到對象的映射”。

像以前介紹的args4j和jbock一樣, Commandline使用注釋來提供潛在命令行選項的“定義”。 然而,雖然args4j通過注釋做到這一點的類字段和jbock通過在構(gòu)造函數(shù)及其參數(shù)注解做到這一點,命令行使用的“集”(突變)方法的注釋。 在本文中,我使用Main類示例,如之前有關基于Java的命令行處理的文章中所述,但是在正常情況下,我通常更喜歡使用一個特殊的類來表示命令行參數(shù)。

下面的代碼清單演示了如何在“ get”方法上使用Commandline批注,以實現(xiàn)Commandline命令行處理的“ definition”階段。

命令行處理的命令行“定義”階段

public class Main {/** Is verbosity enabled? */private boolean verbose;/** Name/path of applicable file. */private String fileName;@Option@ShortSwitch("v")@LongSwitch("verbose")@Toggle(true)public void setVerbose(final boolean newVerbose){verbose = newVerbose;}@Option@ShortSwitch("f")@LongSwitch("file")@SingleArgument@Requiredpublic void setFileName(final String newFileName){fileName = newFileName;}

上面的代碼清單顯示了命令行注釋@Option以及自定義已定義選項的其他注釋的使用(對于短和長參數(shù), @Required @ShortSwitch和@LongSwitch ;對于強制參數(shù), @SingleArgument @Required用于指定與switch關聯(lián)的一個參數(shù)的@SingleArgument ;以及@Toggle表示該開關的存在或不重要是重要的[沒有與該開關關聯(lián)的參數(shù)]。

下一個代碼清單演示了使用Commandline進行命令行解析的“解析”和“詢問”階段。

使用命令行“解析”和“詢問”

try {// "Parsing" stage.final Main main = CommandLineParser.parse(Main.class, arguments, OptionStyle.LONG_OR_COMPACT);// "Interrogation" stage.out.println("You provided file name of '" + main.fileName+ "' and verbose is set to '" + main.verbose + "'."); } catch (IllegalAccessException | InstantiationException | InvocationTargetException exception) {out.println("ERROR: Unable to parse command-line arguments: " + exception); }

最后一個代碼示例演示了使用單個CommandLineParser.parse(Class<T>, String[], OptionStyle)調(diào)用即可完成解析CommandLineParser.parse(Class<T>, String[], OptionStyle)并且查詢與訪問該方法返回的實例成員一樣簡單。 提供給parse方法的第三個參數(shù)很重要,因為它指示解析器如何期望顯示開關。

剛剛顯示的代碼示例使用OptionStyle.LONG_OR_COMPACT ,該文檔描述:“長開關前面有兩個破折號。 短開關前面加一個破折號,可以連接成一個開關。” 相反, OptionStyle.SIMPLE指示解析器期望“所有開關必須是獨立的”和“所有(長和短)開關都必須在命令行前加一個破折號。”

下一個屏幕快照演示了此簡單的應用程序的實際操作。

如果未提供必需的參數(shù),則會顯示一條消息(包括堆棧跟蹤),類似于下一個屏幕快照中所示。

我在此處不包括基于Commandline使用幫助或用法的示例,因為,正如該項目的GitHub頁面所述,“生成幫助文本”是“當前不支持的功能”。

選擇庫以幫助進行Java中的命令行解析時,需要考慮以下Commandline的其他特征。

  • Commandline是開源的,并根據(jù)Apache License Version 2.0獲得許可 。
  • 當前版本的Commandline( 1.7.0 )至少需要Java SE 7 。
  • commandline-1.7.0.jar大小約為38 KB,并且不依賴于任何其他庫。

命令行是Java開發(fā)人員可以使用的大量開源命令行處理庫中??的另一個,并且與其他幾個命令行庫一樣,命令行使用注釋來完成大部分繁重的工作。

其他參考

  • GitHub上的命令行
  • Maven Central上的命令行

翻譯自: https://www.javacodegeeks.com/2017/06/java-command-line-interfaces-part-4-commandline.html

java調(diào)用命令行命令

總結(jié)

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

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