java登录界面命令_Java命令行界面(第30部分):观察
java登錄界面命令
這個有關Java命令行參數解析的系列文章由四個月來發表的29篇帖子組成,涵蓋了28個不同的開放源代碼庫,可用于解析Java命令行參數。 這篇文章收集了可以從本系列的前29篇文章中得出的一些觀點,并提供了選擇28個庫中的一個或決定使用自己的命令行參數解析代碼時要考慮的一些一般注意事項。 盡管沒有一個圖書館會最適合每種情況,但本文還將著眼于某些圖書館在特定情況下可能比其他圖書館更適合。 該帖子將以原始28個庫的一個子集結尾,根據該帖子所涉及的一些標準,這可能是所涵蓋庫中最吸引人的。
一般觀察
查看本系列中涉及Java解析命令行參數的28個庫之后,可以得出一些結論 。
- 對于大多數情況下的大多數Java開發人員而言,似乎沒有什么理由編寫自定義命令行解析代碼 。
- 大量基于Java的庫,用于解析命令行參數,以指示Java生態系統的廣闊性。
- 所有28個涵蓋的庫都是開放源代碼,這一事實提醒我們Java文化中基本開放源代碼的地位如何。
- 本系列文章所涵蓋的庫之間存在一些有趣的差異,各種不同的方法提醒我們,在Java中實現甚至相對較小的功能通常也有不止一種方法。
- Java中有大量用于解析命令行參數的庫,其中許多庫與作者聲明相關聯,這些語句表明有關現有庫的某些內容無法滿足其需求,這表明不可能有單一語言,框架或庫對每個人都是“最好的”。 如果不能將像命令行解析庫這樣簡單的東西寫成每個人都喜歡的東西,那么似乎不可能有一個更大的庫,框架或編程語言成為每個人都喜歡的東西。 在庫,框架和編程語言方面,“ 一種規格不能滿足所有需求 ”。
- 在評估和選擇庫時,不僅要考慮技術實力; 它的許可證,分配機制,貨幣,提供者支持和社區支持也都影響了決策。 甚至將要運行的Java版本都在決策中起作用。
評價標準
當在如此眾多的庫之間進行選擇以及權衡是使用庫還是實現自己的命令行參數功能時,這些規則對于Java開發人員而言可能很重要。
- 它是開源的嗎?
- 在這種情況下,我對開放源代碼的簡單定義是“開發人員可以使用該庫合法地查看源代碼。”
- 它的許可證是什么?
- 發行每個庫所依據的許可證對于確定是否選擇該庫具有重要意義。
- 它的大小是多少?
- 庫的使用通常意味著在類路徑上有一個附加的JAR,在某些情況下,對于特定的部署環境,使這些附加的庫的大小保持盡可能小可能很重要。
- 是否存在第三方依賴性?
- 第三方庫增加了庫大小的整體增加,并意味著需要管理更多的依賴項。
- 分配機制是什么?
- 通過Maven存儲庫作為單個JAR的可用性可能是大多數Java開發人員獲取庫的最簡單機制。
- 文獻資料
- 本系列文章所涵蓋的庫以多種方式進行了記錄,包括項目文檔,Javadoc文檔,單元測試和代碼內注釋。
- 社區
- 對于開源項目,擁有一個使用該產品的大型社區通常是有利的,因為大型社區意味著更多的隱式測試以及可能會有更多有關如何使用該項目的博客文章,文章和論壇消息。
- 圖書館時代/最新更新
- 較新并不總是更好,但與使用多年來未更新或更改的產品相比,使用接收當前和最新更新的開源產品通常更具吸引力。
- 它提供什么功能?
- 這是本系列中的庫真正使自己與眾不同的地方,但這是最難在庫之間進行比較的標準,因為它實際上取決于所需的特定功能。
picocli GitHub 頁面上的“ CLI比較”頁面對本系列中涉及的許多庫以及本系列中未涉及的一些庫進行了比較和對比。 該頁面通過列出每個庫各自的屬性(如許可證,支持的最低Java版本,API樣式和支持的解析選項),以表格式比較庫。
本系列涵蓋了28種不同的庫,用于解析Java的命令行參數。 為此,不可能在所有情況下都將其中任何一個指定為“最佳”庫。 每個庫都是其開發人員(或多個開發人員)對時間和精力的投資,但是我在這里嘗試將庫列表縮小到我認為最有可能吸引一般情況和開發人員的子集。
最有可能投票成功
以下庫按字母順序列出,而不是按我的偏愛順序列出。
- Apache Commons CLI
- 在我看來,Apache Commons CLI在推薦的庫的縮小子集中提供了最不美觀的API。
- args4j
- args4j提供了許多功能并且具有高度可擴展性。
- 指揮官
- API由注釋和構建器的易于使用的組合組成。
- JewelCli
- JewelCli的帶注釋接口方法吸引了我。
- Picocli
- 高度可讀的基于注釋的API。
盡管我列出了涵蓋的28個庫中的5個庫的一個子集,但是由于某些原因,開發人員可能選擇使用不在此縮小列表中的23個庫之一。 不在此列表中的幾個庫提供了獨特的功能,這些功能如果對Java開發人員來說足夠重要,將使這些庫優于上面列出的5個。
接下來的清單將一些涵蓋庫與它們相對獨特的優勢聯系在一起。 即使它不是我剛剛強調的五個列表中的一個,也可能會選擇其中的一個,如果它在特殊情況下具有獨特的優勢,并且是相關應用程序最重要的考慮因素之一。 列出的許多“特征”是喜好或品味的問題,這意味著具有列出的特征的文庫可能被一個開發人員視為正面,而被另一開發人員視為負面。
| 顏色語法 | 顏色語法(選擇環境) | Picocli |
| 命令完成 | 自動完成命令(某些環境) | Picocli |
| 配置(注釋) | 主要使用注釋來定義命令行選項。 | 航空公司2 args4j 解析器 CmdOption 命令行 谷歌選項 杰博克 指揮官 JewelCli MarkUtils-CLI Picocli 羅普 |
| 配置(API) | 使用編程API(傳統和/或生成器)定義命令行選項。 | Apache Commons CLI Argparse4j argparser CmdLn getopt4j 雅高 杰格普 杰格斯 聯合會 拍手 JOpt簡單 JSAP jw選項 解析cmd |
| 配置(反射) | 使用反射(但不使用注釋)定義命令行選項。 | 克拉爾 |
| 配置(XML) | 使用或支持使用XML定義命令行選項。 | 突擊隊 JSAP |
| 單一檔案來源 | 可以輕松地將“庫”作為已編譯的源代碼文件而不是作為針對其進行編譯的JAR包含在項目中。 | 克拉爾 Picocli |
| 小罐子 | 庫提供的最小JAR大小小于25 KB(適用于本系列中介紹的版本)。 | 克拉爾 解析器 getopt4j 杰格普 杰格斯 拍手 jw選項 羅普 |
在基于Java的命令行分析庫中,人們可能希望擁有許多其他特性,這些特性可能會縮小適當候選對象的數量。 這些包括命令樣式的靈活性(長名稱和/或簡稱,樣式[GNU,POSIX,Java等]),適用的許可證,當前支持的可用性,新版本和更新,用戶社區的大小以及Java的最低版本被支持。 先前參考的Java命令行解析器比較中提供的表使本系列涵蓋的大多數庫的這些特性的比較變得容易。
這個使用Java解析命令行參數的系列展示了28個庫,并且該系列中還沒有涉及其他一些公開可用的庫。 擁有超過30個可用的庫,大多數開發人員應該能夠找到一個滿足自己需求的外部庫。
其他參考
- Java庫用于解析命令行參數? [關閉]
- 如何在Java中解析命令行參數?
- 適用于Java的最佳CLI解析器
- 我應該使用哪個庫來處理Java程序的CLI參數?
- Java命令行解析器比較
翻譯自: https://www.javacodegeeks.com/2017/11/java-command-line-interfaces-part-30-observations.html
java登錄界面命令
總結
以上是生活随笔為你收集整理的java登录界面命令_Java命令行界面(第30部分):观察的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mongodb启用身份验证_为您的Web
- 下一篇: cli parser_Java命令行界面