博客 / 詳情

返回

Java 框架、庫和軟件的精選列表(Awesome Java)

原創翻譯,原始鏈接 本文為awesome系列中的awesome java

Awesome Java Awesome

Java 框架、庫和軟件的精選列表

項目

Bean映射

簡化 bean 映射的框架

  • dOOv - 為類型安全的域模型驗證和映射提供流暢的 API。它使用註釋、代碼生成和類型安全的 DSL 來使 bean 驗證和映射變得快速而簡單。
  • JMapper - 使用字節碼操作進行閃電般的快速映射。支持註解和 API 或 XML 配置。
  • MapStruct - 基於約定優於配置的方法,簡化不同 bean 類型之間映射的代碼生成器。
  • ModelMapper - 自動將對象相互映射的智能對象映射庫。
  • Orika - JavaBean 映射框架,可以遞歸地將數據從一個對象複製到另一個對象。
  • reMap - 基於 Lambda 和方法句柄的映射,如果對象具有不同的名稱,則需要代碼而不是註釋。
  • Selma - 基於註釋處理器的 bean 映射器。

構建

處理應用程序的構建週期和依賴關係的工具.

  • Apache Maven - 有利於約定優於配置的聲明式構建和依賴管理。 它可能比 Apache Ant 更可取,後者使用相當程序化的方法並且可能難以維護。
  • Bazel - 來自 Google 的工具,可快速可靠地構建代碼。
  • Buck - 鼓勵創建由代碼和資源組成的小型、可重用模塊。
  • Gradle - 通過 Groovy 編程而不是聲明 XML 的增量構建。 與 Maven 的依賴管理配合得很好。

字節碼操作

以編程方式操作字節碼的庫

  • ASM - 通用的低級字節碼操作和分析。
  • Byte Buddy - 使用流暢的 API 進一步簡化字節碼生成。
  • bytecode-viewer - Java 8 Jar & Android APK 逆向工程套件。 (僅限 GPL-3.0)
  • Byteman - 在運行時通過 DSL(規則)操作字節碼; 主要用於測試/故障排除。 (LGPL-2.1 或更高版本)
  • cglib - 字節碼生成庫。
  • Javassist - 嘗試簡化字節碼編輯。
  • Mixin - 使用真正的 Java 代碼在運行時操作字節碼。
  • Perses - 根據混沌工程原理在字節碼級別動態注入故障/延遲。

緩存

提供緩存的庫。

  • cache2k - 內存中高性能緩存庫。
  • Caffeine - 高性能、近乎最佳的緩存庫。
  • Ehcache - 分佈式通用緩存。
  • Infinispan - 用於緩存的高併發鍵/值數據存儲。

CLI

與 CLI 相關的所有庫.

  • ASCII 表 - 以 ASCII 格式繪製表格的庫。
  • Airline - 基於註釋的框架,用於解析類似 Git 的命令行參數。
  • args4j - 解析命令行參數的小型庫。
  • Jansi - 用於格式化控制枱輸出的 ANSI 轉義碼。
  • Java ASCII 渲染 - 控制枱的圖形原語。
  • JCommander - 具有自定義類型和通過實現接口驗證的命令行參數解析框架。
  • jbock - 無反射命令行解析器。
  • Jexer - 高級控制枱(和 Swing)文本用户界面 (TUI) 庫,具有鼠標可拖動窗口、內置終端窗口管理器和 Sixel 圖像支持。看起來像 Turbo Vision。
  • JLine - 包括現代 shell 的功能,如完成或歷史。
  • JOpt Simple - 使用 POSIX#getopt 和 GNU#getopt_long 語法的流暢解析器。
  • picocli - 使用中的 ANSI 顏色和樣式有助於基於註釋的 POSIX/GNU/任何語法、子命令、選項和位置參數的強類型。
  • Text-IO - 幫助創建完整的基於控制枱的應用程序。
  • Lanterna - 簡單的控制枱文本-GUI 庫,類似於curses。 (僅限 LGPL-3.0)

集羣管理

可以動態管理集羣內應用程序的框架。

  • Apache Aurora - 用於長時間運行服務和 cron 作業的 Mesos 框架。
  • Singularity - 使部署和操作變得簡單的 Mesos 框架。 它支持 Web 服務、後台工作人員、計劃作業和一次性任務。

代碼分析

提供指標和質量測量的工具。

  • Checkstyle - 編碼約定和標準的靜態分析。 (LGPL-2.1 或更高版本)
  • Error Prone - 將常見的編程錯誤捕獲為編譯時錯誤。
  • Infer - 用於驗證代碼正確性的現代靜態分析工具。
  • jQAssistant - 使用基於 Neo4J 的查詢語言進行靜態代碼分析。 (僅限 GPL-3.0)
  • NullAway - 以低構建時間開銷消除 NullPointerExceptions。
  • PMD - 用於查找不良編碼實踐的源代碼分析。
  • SonarJava - SonarQube & SonarLint 的靜態分析器。 (僅限 LGPL-3.0)
  • Sourcetrail - 可視化源代碼導航器。
  • Spoon - 用於分析和轉換 Java 源代碼的庫。
  • Spotbugs - 靜態分析字節碼以發現潛在的錯誤。 (僅限 LGPL-2.1)

代碼覆蓋率

為測試套件啓用代碼覆蓋率指標收集的框架和工具。

  • Clover - 依賴源代碼檢測而不是字節碼檢測。
  • Cobertura - 依靠離線(或靜態)字節碼檢測和類加載來收集代碼覆蓋率指標。 (僅限 GPL-2.0)
  • JaCoCo - 支持收集代碼覆蓋率指標的框架,使用離線和運行時字節碼檢測。

代碼生成器

生成重複代碼的工具,可以有效減少代碼量和錯誤.

  • ADT4J - 代數數據類型的 JSR-269 代碼生成器。
  • Auto - 生成工廠、服務和值類。
  • [Bootify ![c]](https://bootify.io) - 使用 JPA 模型和 REST API 生成基於瀏覽器的 Spring Boot 應用程序。
  • FreeBuilder - 自動生成Builder模式。
  • Geci - 發現需要生成代碼的文件,自動更新並使用方便的 API 寫入源代碼。
  • Immutables - 用於生成簡單、安全和一致的值對象的註釋處理器。
  • JavaPoet - 生成源文件的 API。
  • JHipster - Spring Boot 和 AngularJS 的 Yeoman 源代碼生成器。
  • Joda-Beans - 向 Java 添加可查詢屬性的小型框架,增強了 JavaBeans。
  • [JPA Buddy ![c]](https://www.jpa-buddy.com) - IntelliJ IDEA 插件。提供用於生成 JPA 實體、Spring Data JPA 存儲庫、Liquibase 變更日誌和 SQL 腳本的可視化工具。通過將模型與 DB 進行比較,並從 DB 表逆向工程 JPA 實體,提供自動 Liquibase/Flyway 腳本生成。
  • Lombok - 旨在減少冗長的代碼生成器。
  • Record-Builder - Java 記錄的配套構建器類、withers 和模板。
  • Telosys - 簡單輕巧的代碼生成器可作為 Eclipse 插件和 CLI 使用。

編譯器

幫助創建解析器、解釋器或編譯器的框架。

  • ANTLR - 用於自上而下解析的複雜全功能框架。
  • JavaCC - 生成自頂向下解析器的解析器生成器。 允許詞法狀態切換並允許擴展 BNF 規範。
  • JFlex - 詞法分析器生成器。

計算機視覺

尋求從圖像和視頻中獲取高級信息的庫

  • BoofCV - 用於圖像處理、相機校準、跟蹤、SFM、MVS、3D 視覺、二維碼等的庫。
  • ImageJ - 帶有 API 的醫學圖像處理應用程序。
  • JavaCV - OpenCV、FFmpeg 等的 Java 接口。

配置

提供外部配置的庫。

  • centraldogma - 基於 Git、ZooKeeper 和 HTTP/2 的高可用版本控制服務配置存儲庫。
  • cfg4j - 用 Ja​​va 編寫的分佈式應用程序的現代配置庫。
  • config - 支持 Java 屬性、JSON 或其人工優化的超集 HOCON 的配置庫。
  • Configurate - 支持各種配置格式和轉換的配置庫。
  • dotenv - 使用環境特定文件的十二因素配置庫。
  • ini4j - 提供處理 Windows 的 INI 文件的 API。
  • KAConf - 基於註解的 Java 和 Kotlin 配置系統。
  • microconfig - 為微服務設計的配置系統,有助於將配置與代碼分離。不同服務的配置可以有共同的和特定的部分,並且可以動態分佈。
  • owner - 減少屬性的樣板。

約束滿足問題求解器

幫助實現優化和可滿足性問題的庫。

  • Choco - 使用約束編程技術的現成的約束滿足問題求解器。
  • JaCoP - 包括 FlatZinc 語言的接口,使其能夠執行 MiniZinc 模型。 (AGPL-3.0)
  • OptaPlanner - 業務規劃和資源調度優化求解器。

CSV

簡化讀取/寫入 CSV 數據的框架和庫。

  • FastCSV - 性能優化、無依賴且符合 RFC 4180。
  • jackson-dataformat-csv - 用於讀取和寫入 CSV 的 Jackson 擴展。
  • opencsv - 簡單的 CSV 解析器。
  • Super CSV - 強大的 CSV 解析器,支持 Dozer、Joda-Time 和 Java 8。
  • uniVocity-parsers - 最快和最完整的解析器之一。 還附帶 TSV 和固定寬度記錄的解析器。

數據結構

高效和特定的數據結構。

  • Apache Avro - 具有動態類型、未標記數據和沒有手動分配 ID 的數據交換格式。
  • Apache Orc - 用於基於 Hadoop 的工作負載的快速高效的列式存儲格式。
  • Apache Parquet - 基於 Google 關於 Dremel 的論文中的組裝算法的列式存儲格式。
  • Apache Thrift - 起源於 Facebook 的數據交換格式。
  • 大隊列 - 基於內存映射文件的快速且持久的隊列。
  • HyperMinHash-java - 用於計算日誌空間中的並集、交集和集基數的概率數據結構。
  • Persistent Collection - Java Collections Framework 的持久且不可變的類似物。
  • Protobuf - Google 的數據交換格式。
  • RoaringBitmap - 快速高效的壓縮位圖。
  • SBE - 簡單二進制編碼,最快的消息格式之一。
  • Tape - 閃電般快速、事務性、基於文件的 FIFO。
  • Wire - 乾淨、輕量級的協議緩衝區。

數據庫

簡化與數據庫交互的一切。

  • Apache Calcite - 動態數據管理框架。它包含構成典型數據庫管理系統的許多部分。
  • Apache Drill - 用於大數據探索的分佈式、即時模式、ANSI SQL 查詢引擎。
  • Apache Phoenix - 基於 HBase 的高性能關係數據庫層,用於低延遲應用程序。
  • ArangoDB - ArangoDB Java 驅動程序。
  • Chronicle Map - 高效、內存中(選擇持久化到磁盤)、堆外鍵值存儲。
  • Debezium - 用於捕獲變更數據的低延遲數據流平台。
  • druid - 高性能、面向列的分佈式數據存儲。
  • eXist - NoSQL 文檔數據庫和應用平台。 (僅限 LGPL-2.1)
  • FlexyPool - 將指標和故障轉移策略引入最常見的連接池解決方案。
  • Flyway - 簡單的數據庫遷移工具。
  • H2 - 以內存功能着稱的小型 SQL 數據庫。
  • HikariCP - 高性能 JDBC 連接池。
  • JDBI - 方便的 JDBC 抽象。
  • Jedis - 用於與 Redis 交互的小客户端,帶有命令方法。
  • Jest - Elasticsearch REST API 的客户端。
  • jetcd - etcd 的客户端庫。
  • Jinq - 通過 Java 8 Lambda 的符號執行(在 JPA 或 jOOQ 之上)進行類型安全的數據庫查詢。
  • jOOQ - 基於 SQL 模式生成類型安全代碼。
  • Leaf - 分佈式ID生成服務。
  • Liquibase - 獨立於數據庫的庫,用於跟蹤、管理和應用數據庫模式更改。
  • MapDB - 嵌入式數據庫引擎,提供支持在磁盤或堆外內存中的併發集合。
  • MariaDB4j - MariaDB 啓動器,無需安裝或外部依賴。
  • Modality - 具有數據庫逆向工程功能的輕量級 ORM。
  • Spring Data JPA MongoDB 表達式 - 允許您使用 MongoDB 查詢語言來查詢您的關係數據庫。
  • Trino - 大數據的分佈式 SQL 查詢引擎。
  • QuestDB - 用於時間序列的高性能 SQL 數據庫。支持 InfluxDB 線路協議、PostgreSQL 線路協議和 REST。
  • QueryStream - 使用類似 Stream 的 API 構建 JPA 標準查詢。
  • Querydsl - Typesafe 統一查詢。
  • Realm - 直接在手機、平板電腦或可穿戴設備中運行的移動數據庫。
  • Redisson - 允許在 Redis 服務器之上實現分佈式和可擴展的數據結構。
  • requery - 現代、輕量級但功能強大的對象映射和 SQL 生成器。輕鬆映射或創建數據庫,或從任何使用 Java 的平台執行查詢和更新。
  • Speedment - 利用 Java 8 的 Stream API 進行查詢的數據庫訪問庫。
  • Vibur DBCP - 具有高級性能監控功能的 JDBC 連接池庫。
  • Xodus - 高度併發的事務性無模式和符合 ACID 的嵌入式數據庫。

日期和時間

處理日期和時間相關的庫

  • Almanac Converter - 不同日曆系統之間的簡單轉換。
  • iCal4j - 解析和構建 iCalendar RFC 5545 數據模型。
  • Jollyday - 確定給定年份、國家/地區和最終州/地區的假期。
  • ThreeTen-Extra - 補充 JDK 8 中的附加日期時間類。
  • Time4J - 高級日期和時間庫。 (僅限 LGPL-2.1)

依賴注入

有助於實現控制反轉範例的庫。

  • Apache DeltaSpike - CDI 擴展框架。
  • Dagger - 編譯時注入框架,無需反射。
  • Feather - 超輕量級,符合 JSR-330 的依賴注入庫。
  • Governator - 增強 Google Guice 的擴展和實用程序。
  • Guice - 完成 Dagger 的輕量級和自以為是的框架。
  • HK2 - 輕量級動態依賴注入框架。
  • JayWire - 輕量級依賴注入框架。 (僅限 LGPL-3.0)

發展

從根本上增強開發過程。

  • AspectJ - 無縫的面向方面的編程擴展。
  • DCEVM - JVM 修改允許在運行時無限制地重新定義加載的類。 (僅限 GPL-2.0)
  • Faux Pas - 通過規避 Java 運行時中默認情況下不允許任何功能接口拋出已檢查異常的問題來簡化錯誤處理的庫。
  • HotswapAgent - 無限運行時類和資源重定義。 (僅限 GPL-2.0)
  • JavaParser - 解析、修改和生成Java代碼。
  • JavaSymbolSolver - 符號求解器。
  • Manifold - 通過類型安全元編程、結構類型和擴展方法等強大功能重新激發 Java。
  • NoException - 允許在功能接口中檢查異常並將異常轉換為可選返回。
  • SneakyThrow - 在沒有字節碼操作的情況下忽略檢查異常。也可以在 Java 8 流操作中使用。
  • Tail - 使用尾調用優化啓用無限遞歸。

分佈式應用程序

用於編寫分佈式和容錯應用程序的庫和框架。

  • Apache Geode - 內存數據管理系統,提供可靠的異步事件通知和有保證的消息傳遞。
  • Apache Storm - 實時計算系統。
  • Apache ZooKeeper - 為大型分佈式系統提供分佈式配置、同步和命名註冊表的協調服務。
  • Atomix - 容錯分佈式協調框架。
  • Axon - 創建 CQRS 應用程序的框架。
  • Dropwizard Circuit Breaker - Dropwizard 的斷路器設計模式。 (僅限 GPL-2.0)
  • Failsafe - 使用重試和斷路器進行簡單的故障處理。
  • Hazelcast - 具有免費開源版本的高度可擴展的內存數據網格。
  • JGroups - 用於可靠消息傳遞和集羣創建的工具包。
  • Quasar - JVM 的輕量級線程和參與者。
  • resilience4j - 功能性容錯庫。
  • ScaleCube Services - 基於 SWIM 和 gossip 協議的可嵌入集羣成員庫。
  • Zuul - 提供動態路由、監控、彈性、安全等的網關服務。

分佈式事務

分佈式事務提供了一種機制來確保在存在併發訪問和部分故障的情況下數據更新的一致性。

  • Atomikos - 為 REST、SOA 和微服務提供事務,支持 JTA 和 XA。
  • Bitronix - JTA 1.1 API 的簡單但完整的實現。
  • Narayana - 提供對傳統 ACID 和補償交易的支持,同時符合 JTA、JTS 等標準。 (僅限 LGPL-2.1)
  • Seata - 在微服務架構下提供高性能且易於使用的分佈式事務服務。

分發

以原生格式處理應用程序分發的工具。

  • Artipie - 將它們託管在文件系統或 S3 上的二進制工件管理工具包。
  • [Boxfuse ![c]](https://boxfuse.com) - 使用不可變基礎設施的原則將 JVM 應用程序部署到 AWS。
  • Capsule - 簡單強大的打包部署。類固醇上的胖 JAR,或支持 JVM 優化容器的“Docker for Java”。
  • Central Repository - 最大的二進制組件存儲庫,作為開源社區的免費服務提供。 Apache Maven 使用的默認值,並且在所有其他構建工具中都可用。
  • [Cloudsmith ![c]](https://cloudsmith.io) - 完全託管的包管理 SaaS,支持 Maven/Gradle/SBT 並提供免費套餐。
  • Getdown - 用於將 Java 應用程序部署到最終用户計算機並使其保持最新狀態的系統。作為 Java Web Start 的替代品而開發。
  • IzPack - 為跨平台部署設置創作工具。
  • JavaPackager - Maven 和 Gradle 插件,它提供了一種將 Java 應用程序打包到本機 Windows、Mac OS X 或 GNU/Linux 可執行文件中的簡單方法,併為它們生成安裝程序。
  • jlink.online - 通過 HTTP 構建優化的運行時。
  • [Nexus ![c]](https://www.sonatype.com) - 具有代理和緩存功能的二進制管理。
  • packr - 打包 JAR、資產和 JVM,以便在 Windows、Linux 和 macOS 上進行本機分發。
  • really-executable-jars-maven-plugin - 用於製作自執行 JAR 的 Maven 插件。

文檔處理

協助處理辦公文檔格式的庫。

  • Apache POI - 支持 OOXML(XLSX、DOCX、PPTX)以及 OLE2(XLS、DOC 或 PPT)。
  • documents4j - 使用第三方轉換器(如 MS Word)進行文檔格式轉換的 API。
  • docx4j - 創建和操作 Microsoft Open XML 文件。
  • fastexcel - 用於讀寫大型 Excel (XLSX) 工作表的高性能庫。
  • zerocell - 基於註釋的 API,用於將 Excel 工作表

財務

與金融領域相關的庫。

  • Cassandre - 交易機器人框架。
  • Parity - 交易場所平台。
  • Philadelphia - 低延遲金融信息交換。
  • Square - 與 Square API 集成。
  • Stripe - 與 Stripe API 集成。
  • ta4j - 技術分析庫。

正式驗證

形式化方法工具:證明助手、模型檢查、符號執行等

  • CATG - Concolic 單元測試引擎。使用正式方法自動生成單元測試。
  • Checker Framework - 可插拔類型系統。包括空值類型、物理單位、不變性類型等。 (僅 GPL-2.0 WITH Classpath-exception-2.0)
  • Daikon - 檢測可能的程序不變量並根據這些不變量生成 JML 規範。
  • Java Path Finder (JPF) - 包含模型檢查器等的 JVM 形式驗證工具。由美國國家航空航天局創建。
  • JMLOK 2.0 - 通過反饋導向的隨機測試生成檢測代碼和 JML 規範之間的不一致,併為檢測到的每個不符合項提出可能的原因。 (僅限 GPL-3.0)
  • KeyY - 形式化軟件開發工具,旨在儘可能無縫地集成面向對象軟件的設計、實現、形式化規範和形式化驗證。使用 JML 進行規範和符號執行以進行驗證。 (GPL-2.0 或更高版本)
  • OpenJML - 將 JML 規範翻譯成 SMT-LIB 格式,並將程序隱含的證明問題傳遞給後端求解器。 (僅限 GPL-2.0)

函數式編程

促進函數式編程的庫。

  • Cyclops - Monad 和流實用程序、理解、模式匹配、所有 JDK 集合的功能擴展、未來流、蹦牀等等。
  • derive4j - Java 8 註釋處理器和框架,用於派生代數數據類型構造函數、模式匹配和態射。 (僅限 GPL-3.0)
  • Fugue - Guava 的功能擴展。
  • Functional Java - 實現了許多有助於面向組合開發的基本和高級編程抽象。
  • jOOλ - 對 Java 8 的擴展,旨在通過提供大量缺失的類型和一組豐富的順序 Stream API 添加來修復 lambda 中的空白。
  • protonpack - 流實用程序的集合。
  • StreamEx - 增強 Java 8 流。
  • Vavr - 提供持久數據類型和功能控制結構的功能組件庫。

遊戲開發

支持遊戲開發的框架。

  • FXGL - JavaFX 遊戲開發框架。
  • JBox2D - 著名的 C++ 2D 物理引擎的端口。
  • jMonkeyEngine - 現代 3D 開發的遊戲引擎。
  • libGDX - 全方位跨平台、高級框架。
  • Litiengine - 基於 AWT 的輕量級 2D 遊戲引擎。
  • LWJGL - 強大的框架,抽象了 OpenGL/CL/AL 等庫。
  • Mini2Dx - 初學者友好型、大師級框架,用於快速原型設計和構建 2D 遊戲。

地理空間

用於處理地理空間數據和算法的庫。

  • Apache SIS - 用於開發地理空間應用程序的庫。
  • Geo - Java 中的 GeoHash 實用程序。
  • GeoTools - 為地理空間數據提供工具的庫。 (僅限 LGPL-2.1)
  • GraphHopper - 路由引擎。 用作 Java 庫或獨立的 Web 服務。
  • H2GIS - H2 數據庫的空間擴展。 (僅限 LGPL-3.0)
  • Jgeohash - 使用 GeoHash 算法的庫。
  • Mapsforge - 基於 OpenStreetMap 數據的地圖渲染。 (僅限 LGPL-3.0)
  • Spatial4j - 通用空間/地理空間庫。

圖形界面

創建現代圖形用户界面的庫。

  • JavaFX - Swing 的繼任者。
  • Scene Builder - JavaFX 應用程序的可視化佈局工具。
  • SWT - 圖形小部件工具包。

高性能

關於高性能計算的一切,從集合到特定庫。

  • Agrona - 高性能應用程序中常見的數據結構和實用方法。
  • Disruptor - 線程間消息庫。
  • Eclipse Collections - 受 Smalltalk 啓發的集合框架。
  • fastutil - 快速緊湊的特定類型集合。
  • HPPC - 原始集合。
  • JCTools - JDK 目前缺少併發工具。
  • Koloboke - 精心設計的 Java Collections Framework 擴展,具有原始專業化等。

HTTP客户端

幫助創建 HTTP 請求和/或綁定響應的庫。

  • Apache HttpComponents - 專注於 HTTP 和相關協議的低級 Java 組件工具集。
  • 異步 Http 客户端 - 異步 HTTP 和 WebSocket 客户端庫。
  • Feign - 受 Retrofit、JAXRS-2.0 和 WebSocket 啓發的 HTTP 客户端綁定器。
  • Google HTTP 客户端 - 支持 java.net.HttpURLConnection、Apache HTTP 客户端、Android、Google App Engine、XML 的可插入 HTTP 傳輸抽象、Gson、傑克遜和 Protobuf。
  • methanol - HTTP 客户端擴展庫。
  • restQL-java - 從多個服務獲取信息的微服務查詢語言。
  • Retrofit - Typesafe REST 客户端。
  • Ribbon - 在雲中經過實戰測試的客户端 IPC 庫。
  • Riptide - Spring 的 RestTemplate 的客户端響應路由。
  • unirest-java - 簡化的、輕量級的 HTTP 客户端庫。

超媒體類型

處理超媒體類型序列化的庫。

  • hate - 根據 HAL 規範構建對超媒體友好的對象。
  • JSON-LD - JSON-LD 實現。
  • Siren4J - Siren 規範庫。

IDE

簡化部分開發的集成開發環境。.

  • Eclipse - 建立了支持大量插件和語言的開源項目。
  • [IntelliJ IDEA ![c]](https://www.jetbrains.com/idea/) - 支持多種 JVM 語言,為 Android 開發提供了不錯的選擇。 商業版面向企業部門。
  • jGRASP - 旨在提供與調試器結合使用的軟件可視化,例如控制結構圖、UML 類圖和對象查看器。
  • NetBeans - 提供從數據庫訪問到 HTML5 的多個 Java SE 和 EE 功能的集成。
  • Recaf - 字節碼編輯器。
  • Visual Studio Code - 通過使用來自內部市場的擴展,通過簡單、現代的工作流程為輕量級項目提供 Java 支持。

圖像

幫助創建、評估或操作圖形圖像的庫。

  • Imgscalr - 在純 Java 2D 中實現的簡單、高效和硬件加速的圖像縮放庫。
  • Tess4J - Tesseract OCR API 的 JNA 包裝器。
  • Thumbnailator - 高質量的縮略圖生成庫。
  • TwelveMonkeys - 擴展支持的圖像文件格式數量的插件集合。
  • ZXing - 多格式一維/二維條碼圖像處理庫。
  • image-comparison - 比較兩個相同大小的圖像並通過繪製矩形直觀地顯示差異的庫。 圖像的某些部分可以從比較中排除。 可用於自動化 QA 測試。

內省

有助於使 Java 內省和反射 API 更容易和更快地使用的庫。

  • ClassGraph - ClassGraph(以前稱為 FastClasspathScanner)是一個超快速、超輕量級、並行化的類路徑掃描器和模塊掃描器,適用於 Java、Scala、Kotlin 和其他 JVM 語言。
  • jOOR - jOOR 代表 jOOR 面向對象反射。它是 java.lang.reflect 包的簡單包裝器。
  • Mirror - 創建鏡像是為了解決一個簡單的問題,通常命名為 ReflectionUtil,幾乎所有依賴反射來完成高級任務的項目都有它.
  • Objenesis - 允許在沒有默認構造函數的情況下動態實例化,例如具有必需參數、副作用或拋出異常的構造函數。
  • ReflectASM - ReflectASM 是一個非常小的 Java 庫,它通過使用代碼生成來提供高性能反射。
  • Reflections - Reflections 掃描你的類路徑,索引元數據,允許你在運行時查詢它,並且可以保存和收集項目中許多模塊的信息。

作業調度

用於調度後台作業的庫。

  • JobRunr - 利用 lambdas 進行即發即棄、延遲和重複作業的作業調度庫。使用樂觀鎖定保證單個調度程序實例的執行。具有持久性、最小依賴性和可嵌入的特性。
  • Quartz - 功能豐富的開源作業調度庫,幾乎可以集成到任何 Java 應用程序中。
  • Sundial - 輕量級框架,用於簡單地定義作業、定義觸發器和啓動調度程序。
  • Wisp - 具有最小佔用空間和簡單 API 的簡單庫。
  • db-scheduler - 持久和集羣友好的調度程序。
  • easy-batch - 使用簡單的處理管道設置批處理作業。記錄從數據源按順序讀取,在管道中處理並批量寫入數據接收器。
  • shedlock - 確保您的計劃任務最多同時執行一次。如果一個任務正在一個節點上執行,它會獲取一個鎖,以防止從另一個節點或線程執行相同的任務。

JSON

用於從 Java 對象序列化和反序列化 JSON 的庫。

  • DSL-JSON - 具有高級編譯時數據綁定的 JSON 庫。
  • Genson - 強大易用的 Java 到 JSON 轉換庫。
  • Gson - 將對象序列化為 JSON,反之亦然。即時使用的良好性能。
  • HikariJSON - 高性能 JSON 解析器,比 Jackson 快 2 倍。
  • jackson-modules-java8 - 適用於 Java 8 數據類型和功能的 Jackson 模塊集。
  • Jackson-datatype-money - 開源 Jackson 模塊,支持 JavaMoney 數據類型的 JSON 序列化和反序列化。
  • Jackson - 類似於 GSON,但如果您需要更頻繁地實例化庫,可以提供性能提升。
  • JSON-io - 將 Java 轉換為 JSON。將 JSON 轉換為 Java。漂亮的打印 JSON。 Java JSON 序列化程序。
  • jsoniter - 快速靈活的庫,帶有迭代器和惰性解析 API。
  • LoganSquare - 基於 Jackson 的流 API 的 JSON 解析和序列化庫。優於 GSON 和 Jackson 的庫。
  • Moshi - 現代 JSON 庫,較少固執己見,並使用 List 和 Map 等內置類型。
  • Yasson - 類和 JSON 文檔之間的綁定層,類似於 JAXB。
  • fastjson - 非常快的處理器,沒有額外的依賴和完整的數據綁定。
  • Jolt - JSON 到 JSON 的轉換工具。
  • JsonPath - 使用類似 XPATH 的語法從 JSON 中提取數據。
  • JsonSurfer - 專用於處理大而複雜的 JSON 數據的流式 JsonPath 處理器。

JVM和JDK

JVM/JDK 的當前實現。

  • 採用 Open JDK - 社區驅動的 OpenJDK 構建,包括 HotSpot 和 OpenJ9。
  • Avian - 具有 JIT、AOT 模式和 iOS 端口的 JVM。
  • Corretto - 亞馬遜免費、多平台、生產就緒的 OpenJDK 分發。 (僅 GPL-2.0 WITH Classpath-exception-2.0)
  • Dragonwell8 - 針對在線電子商務、金融、物流應用優化的OpenJDK下游版本。
  • Graal - 多語言嵌入式 JVM。 (僅 GPL-2.0 WITH Classpath-exception-2.0)
  • Liberica JDK - 由 OpenJDK 構建,經過全面測試並通過了 JCK。 (僅 GPL-2.0 WITH Classpath-exception-2.0)
  • OpenJ9 - 高性能、企業級、靈活許可、開放管理的跨平台 JVM,擴展和增強了來自 Eclipse OMR 和 OpenJDK 項目的運行時技術組件。
  • Open JDK - Open JDK 社區主頁。 (僅 GPL-2.0 WITH Classpath-exception-2.0)
  • ParparVM - 適用於 iOS 的具有非阻塞併發 GC 的 VM。 (僅 GPL-2.0 WITH Classpath-exception-2.0)
  • RedHat Open JDK - RedHat 的 OpenJDK 發行版。 (僅 GPL-2.0 WITH Classpath-exception-2.0)
  • SAP Machine - SAP 的免費、經過嚴格測試和 JCK 驗證的 OpenJDK 友好分支。 (僅 GPL-2.0 WITH Classpath-exception-2.0)
  • Zulu - OpenJDK 為 Windows、Linux 和 macOS 構建。 (僅 GPL-2.0 WITH Classpath-exception-2.0)

    日誌

記錄應用程序行為的庫。

  • Apache Log4j 2 - 使用強大的插件和配置架構完成重寫。
  • Echopraxia - 圍繞結構化日誌、豐富上下文和條件日誌設計的 API。有 Logback 和 Log4J2 實現,但 Echopraxia 的 API 是完全無依賴的,這意味着它可以使用任何日誌 API 來實現。
  • Graylog - 適用於擴展角色和權限管理的開源聚合器。 (僅限 GPL-3.0)
  • Kibana - 分析和可視化日誌文件。有些功能需要付費。
  • Logback - 強大的日誌庫,通過 Groovy 提供有趣的配置選項。
  • 日誌 - 用於 HTTP 請求和響應日誌記錄的可擴展開源庫。
  • Logstash - 管理日誌文件的工具。
  • p6spy - 無需更改代碼即可為所有 JDBC 事務啓用日誌記錄。
  • SLF4J - 抽象層/簡單的日誌記錄外觀。
  • tinylog - 帶有靜態記錄器類的輕量級記錄框架。
  • OpenTracing Toolbox - 建立在 OpenTracing 之上併為現有儀器提供擴展和插件的庫的集合。

機器學習

提供特定統計算法以從數據中學習的工具。

  • Apache Flink - 快速、可靠、大規模的數據處理引擎。
  • Apache Mahout - 專注於協同過濾、聚類和分類的可擴展算法。
  • DatumBox - 為自然語言處理提供多種算法和預訓練模型。
  • Deeplearning4j - 分佈式和多線程深度學習庫。
  • DJL - 用於深度學習的高級且與引擎無關的框架。
  • [H2O ![c]](https://www.h2o.ai) - 大數據統計分析引擎。
  • JSAT - 用於預處理、分類、迴歸和聚類的算法,支持多線程執行。 (僅限 GPL-3.0)
  • m2cgen - 將模型轉換為本機代碼的 CLI 工具。
  • oj! Algorithms - 數據科學、機器學習和科學計算所需的高性能數學、線性代數和優化。
  • Oryx 2 - 用於構建實時、大規模機器學習應用程序的框架。包括用於協同過濾、分類、迴歸和聚類的端到端應用程序。
  • Siddhi - 雲原生流和複雜事件處理引擎。
  • Smile - 統計機器智能與學習引擎提供了一套機器學習算法和可視化庫。
  • Tribuo - 提供用於分類、迴歸、聚類、模型開發的工具以及與其他庫(如 scikit-learn、pytorch 和 TensorFlow)的接口。
  • Weka - 從預處理到可視化的數據挖掘任務的算法集合。 (僅限 GPL-3.0)

消息

幫助在客户端之間發送消息以確保協議獨立性的工具。

  • Aeron - 高效、可靠、單播和多播消息傳輸。
  • Apache ActiveMQ - 實現 JMS 並將同步通信轉換為異步通信的消息代理。
  • Apache Camel - 通過企業集成模式將不同的傳輸 API 粘合在一起。
  • Apache Kafka - 高吞吐量分佈式消息系統。
  • Apache Pulsar - 分佈式發佈/訂閲消息系統。
  • Apache RocketMQ - 快速、可靠、可擴展的分佈式消息傳遞平台。
  • Apache Qpid - Apache Qpid 製作的消息傳遞工具支持 AMQP 並支持多種語言和平台。
  • EventBus - 簡單的發佈/訂閲事件總線。
  • Hermes - 建立在 Kafka 之上的快速可靠的消息代理。
  • JeroMQ - ZeroMQ 的實現。
  • Nakadi - 在 Kafka 之上提供 RESTful API。
  • RabbitMQ Java 客户端 - RabbitMQ 客户端。
  • Smack - 跨平台 XMPP 客户端庫。
  • NATS 客户端 - NATS 客户端。

微服務

ActiveRPC - 用於複雜高負載分佈式應用程序和類似 Memcached 解決方案的輕量級和快速庫。

  • Apollo - 用於編寫可組合微服務的庫。
  • Armeria - 基於 Java 8、Netty、HTTP/2、Thrift 和 gRPC 構建的異步 RPC/REST 客户端/服務器庫。
  • consul-api - Consul API 的客户端:分佈式、高可用性和數據中心感知的註冊/發現服務。
  • Eureka - 基於 REST 的服務註冊表,用於彈性負載平衡和故障轉移。
  • Helidon - 兩種編寫微服務的方法:功能響應式和作為 MicroProfile 的實現。
  • Micronaut - 現代全棧框架,專注於模塊化、最小內存佔用和啓動時間。
  • Nacos - 構建雲原生應用的動態服務發現、配置和服務管理平台。
  • Quarkus - 為 HotSpot 和 Graal VM 量身定製的 Kubernetes 堆棧。
  • Sentinel - 支持微服務的可靠性、彈性和監控的流控制組件。

雜項

其他一切。

  • CQEngine - Java 集合上的超快速、類似 SQL 的查詢。
  • 設計模式 - 最常見的設計模式的實現和解釋。
  • FF4J - Java 的功能標誌。
  • FizzBuzz 企業版 - 嚴肅的商人為嚴肅的商業目的製作的 FizzBu​​zz 的嚴肅實現。 (無明確許可)
  • J2ObjC - Java-to-Objective-C 轉換器,用於將 Android 庫移植到 iOS。
  • JBake - 靜態網站生成器。
  • JBot - 構建聊天機器人的框架。 (僅限 GPL-3.0)
  • JCuda - JCuda 為 CUDA 和 CUDA 相關庫提供 Java 綁定。
  • Jimfs - 內存文件系統。
  • [JObfuscator![c]](https://www.pelock.com/produc...) - 源代碼混淆器。
  • Joda-Money - JDK 未提供的基本貨幣和貨幣類別和算法。
  • JPad - 片段運行器。
  • jsweet - TypeScript/JavaScript 的源代碼轉換器。
  • Maven Wrapper - Maven 的 Gradle Wrapper 的類似物,允許在不安裝 maven 的情況下構建項目。
  • 膜服務代理 - 開源、反向代理框架。
  • MinimalFTP - 輕量級、小型和可定製的 FTP 服務器。
  • 現代 Java - Java 8 指南 - 流行的 Java 8 指南。
  • Modernizer - 檢測遺留 Java API 的使用。
  • OctoLinker - 允許更有效地瀏覽 GitHub 上的代碼的瀏覽器擴展。
  • OpenRefine - 處理雜亂數據的工具:清理、轉換、使用 Web 服務擴展數據並將其鏈接到數據庫。
  • PipelinR - 用於在管道中使用處理程序和命令的小型實用程序庫。
  • Polyglot for Maven - Maven 3.3.1+ 的擴展,允許用 XML 以外的方言編寫 POM 模型。
  • RR4J - RR4J 是一個記錄java字節碼執行的工具,以後允許開發者在本地回放。
  • 簡單 Java 郵件 - 使用乾淨流暢的 API 發送郵件。
  • Smooks - 基於片段的消息處理框架。 (Apache-2.0 或 LGPL-3.0 或更高版本)
  • Togglz - 功能切換模式的實現。
  • TypeTools - 解析泛型類型的工具。
  • XMLBeam - 通過在代碼中使用註釋或 XPath 處理 XML。
  • yGuard - 通過重命名和收縮進行混淆。

移動開發

用於創建或管理移動應用程序的工具。

  • Codename One - 編寫原生移動應用的跨平台解決方案。 (僅 GPL-2.0 WITH Classpath-exception-2.0)
  • MobileUI - 跨平台框架,用於在 Java 和 Kotlin 中使用本機 UI 開發移動應用程序。
  • Multi-OS Engine - 用於開發原生移動(iOS、Android 等)應用程序的開源、跨平台引擎。

監控

監控生產中應用程序的工具。

  • Automon - 將 AOP 的強大功能與監控和/或日誌工具相結合。
  • Failsafe Actuator - Spring-Boot 環境中故障安全斷路器的開箱即用監控。
  • Glowroot - 開源 Java APM。
  • inspectIT - 通過可以動態更改的掛鈎捕獲詳細的運行時信息。它支持通過 OpenTracing API 對多個系統進行跟蹤,並且可以將數據與最終用户監控相關聯。
  • [Instrumental ![c]](https://instrumentalapp.com) - 實時 Java 應用程序性能監控。具有免費開發帳户的商業服務。
  • JavaMelody - 性能監控和分析。
  • Jaeger 客户端 - Jaeger 客户端。
  • jmxtrans - 連接到多個 JVM 並通過 JMX 查詢它們的屬性。它的查詢語言基於 JSON,它允許非 Java 程序員訪問 JVM 屬性。支持不同的輸出寫入,包括 Graphite、Ganglia 和 StatsD。
  • Jolokia - 基於 REST 的 JMX。
  • Metrics - 通過 JMX 或 HTTP 公開指標並將它們發送到數據庫。
  • [Datadog ![c]](https://github.com/DataDog/dd...) - 現代監控和分析。
  • nudge4j - 通過字節碼注入從 Java 8 瀏覽器遠程開發者控制枱。
  • Pinpoint - 開源 APM 工具。
  • Prometheus - 提供多維數據模型、DSL、自治服務器節點等等。
  • [Sentry ![c]](https://github.com/getsentry/...) - 與 Sentry 集成,應用程序錯誤跟蹤和性能分析平台。
  • [SPM ![c]](https://github.com/sematext/s...) - 為 JVM 應用程序分配事務跟蹤的性能監視器。
  • Stagemonitor - JVM 應用程序的開源性能監控和事務跟蹤。
  • Sysmon - Java VM 的輕量級平台監控工具。
  • zipkin - 分佈式跟蹤系統,它收集解決微服務架構中的延遲問題所需的時間數據。

原生

用於使用特定於平台的本機庫。

  • Aparapi - 將字節碼轉換為允許在 GPU 上執行的 OpenCL。
  • JavaCPP - 提供對本機 C++ 的高效和輕鬆訪問。
  • JNA - 無需編寫 JNI 即可使用本機庫。 還提供通用系統庫的接口。
  • JNR - 無需編寫 JNI 即可使用本機庫。 還提供通用系統庫的接口。 與 JNA 相同的目標,但速度更快,並作為即將到來的 [Project Panama] (http://openjdk.java.net/proje...) 的基礎。

自然語言處理

專門處理文本的庫。

  • CogCompNLP - 為純文本輸入提供通用註釋器。 (研究和學術使用許可證)
  • CoreNLP - 為標記、命名實體識別和情感分析等任務提供一組基本工具。 (GPL-3.0 或更高版本)
  • DKPro - 用於語言預處理、機器學習、詞彙資源等的可重用 NLP 工具集合。
  • LingPipe - 用於從 POS 標記到情緒分析的任務的工具包。

網絡

用於構建網絡服務器的庫。

  • Commons-networking - 服務器發送事件的客户端 (SSE)。
  • Comsat - 將標準 Java Web 相關 API 與 Quasar 光纖和 Actor 集成。
  • Dubbo - 高性能RPC框架。
  • Grizzly - NIO 框架。在 Glassfish 中用作網絡層。
  • gRPC - 基於 protobuf 和 HTTP/2 的 RPC 框架。
  • KryoNet - 為使用 NIO 和 Kryo 的高效 TCP 和 UDP 客户端/服務器網絡通信提供乾淨簡單的 API。
  • MINA - 抽象的、事件驅動的異步 I/O API,用於通過 Java NIO 通過 TCP/IP 和 UDP/IP 進行網絡操作。
  • Netty - 構建高性能網絡應用程序的框架。
  • Drift - 易於使用、基於註釋的庫,用於創建 Thrift 客户端和可序列化類型。
  • ServiceTalk - 基於 Netty 構建的框架,具有針對特定協議量身定製的 API,並支持多種編程範式。
  • sshj - 以編程方式使用 SSH、SCP 或 SFTP。
  • TLS 通道 - 通過 SSLEngine 實現 ByteChannel 接口,實現易於使用(類似套接字)的 TLS。
  • Undertow - 基於 NIO 提供阻塞和非阻塞 API 的 Web 服務器。在 WildFly 中用作網絡層。 (僅限 LGPL-2.1)
  • urnlib - 表示、解析和編碼 URN,如 RFC 2141 中所述。(僅限 GPL-3.0)

ORM

處理對象持久性的API。

  • Apache Cayenne - 為數據訪問提供乾淨、靜態的 API。還包括一個用於處理數據庫映射以及數據庫逆向工程和生成的 GUI 建模器。
  • Doma - 數據庫訪問框架,在編譯時使用註釋處理以及稱為雙向 SQL 的本機 SQL 模板驗證和生成源代碼。
  • Ebean - 提供簡單快速的數據訪問。
  • EclipseLink - 支持多種持久性標準:JPA、JAXB、JCA 和 SDO。
  • Hibernate - 強大且廣泛使用,擁有活躍的社區。 (僅限 LGPL-2.1)
  • MyBatis - 將對象與存儲過程或 SQL 語句耦合。
  • ObjectiveSql - 用於快速開發和約定優於配置的 ActiveRecord ORM。
  • Permazen - 語言自然持久層。
  • SimpleFlatMapper - 簡單的數據庫和 CSV 映射器。

PaaS

Java 平台即服務。

  • [AWS Elastic Beanstalk ![c]](https://aws.amazon.com/elasti...) - 基於 AWS,支持 Tomcat 和 Jetty。
  • [AWS Lambda ![c]](https://aws.amazon.com/lambda/) - 無服務器計算。
  • [Google Cloud ![c]](https://cloud.google.com) - Google 的雲基礎架構。
  • [Heroku ![c]](https://www.heroku.com) - 抽象計算環境。
  • [Microsoft Azure ![c]](https://azure.microsoft.com/e...) - Microsoft 的雲基礎架構。
  • [OpenShift ![c]](https://www.openshift.com) - 額外提供本地解決方案。

PDF

幫助處理 PDF 文件的工具。

  • Apache FOP - 從 XSL-FO 創建 PDF。
  • Apache PDFBox - 用於創建和操作 PDF 的工具箱。
  • Dynamic Jasper - JasperReports 的抽象層。 (僅限 LGPL-3.0)
  • DynamicReports - 簡化 JasperReports。 (僅限 LGPL-3.0)
  • Eclipse BIRT - 使用基於 Eclipse 的可視化編輯器創建 PDF 和其他格式(DOCX、XLSX、HTML 等)的報告引擎。
  • flyingsaucer - XML/XHTML 和 CSS 2.1 渲染器。 (LGPL-2.1 或更高版本)
  • [iText ![c]](https://itextpdf.com/en) - 以編程方式創建 PDF 文件。
  • JasperReports - 複雜的報告引擎。 (僅限 LGPL-3.0)
  • Open HTML to PDF - 正確支持基於flyingsaucer和Apache PDFBox的現代PDF標準。
  • OpenPDF - 開源 iText 分支。 (僅限 LGPL-3.0 和 MPL-2.0)
  • Tabula - 從 PDF 文件中提取表格。

性能分析

用於性能分析、分析和基準測試的工具。

  • [fastThread ![c]](https://fastthread.io) - 使用基於雲的免費上傳界面分析和可視化線程轉儲。
  • [GCeasy ![c]](https://gceasy.io) - 分析和可視化 GC 日誌的工具。 它提供了一個免費的基於雲的上傳界面。
  • honest-profiler - 低開銷、無偏差的採樣分析器。
  • jHiccup - 日誌和記錄平台 JVM 停止。
  • JITWatch - 分析 HotSpot JVM 對 JIT 編譯器的優化。
  • JMH - 用於構建、運行和分析以 Java 和其他針對 JVM 的語言編寫的 nano/micro/milli/macro 基準測試的工具 . (僅 GPL-2.0 與 Classpath-exception-2.0)
  • LatencyUtils - 用於延遲測量和報告的實用程序。

平台

包含多個類別的多個庫套件的框架。

Apache Commons

  • BCEL - 字節碼工程庫 - 分析、創建和操作 Java 類文件。
  • BeanUtils - 易於使用的圍繞 Java 反射和自省 API 的包裝器。
  • BeanUtils2 - 重新設計 Commons BeanUtils。
  • BSF - Bean Scripting Framework - 腳本語言接口,包括 JSR-223。
  • Chain - 責任鏈模式實現。
  • ClassScan - 無需加載即可查找類接口、方法、字段和註釋。
  • CLI - 命令行參數解析器。
  • CLI2 - 重新設計 Commons CLI。
  • Codec - 通用編碼/解碼算法,例如拼音、base64 或 URL。
  • Collections - 擴展或增強 Java 集合框架。
  • Compress - 定義用於處理 tar、zip 和 bzip2 文件的 API。
  • Configuration - 讀取各種格式的配置/首選項文件。
  • Convert - Commons-Convert 旨在提供一個單獨的庫,專門用於將一種類型的對象轉換為另一種類型的任務。
  • CSV - 用於讀取和寫入逗號分隔值文件的組件。
  • Daemon - 類似 unix-daemon 的 java 代碼的替代調用機制。
  • DBCP - 數據庫連接池服務。
  • DbUtils - JDBC 幫助程序庫。
  • Digester - XML-to-Java-object 映射實用程序。
  • Email - 用於從 Java 發送電子郵件的庫。
  • Exec - 在 Java 中處理外部進程執行和環境管理的 API。
  • FileUpload - servlet 和 Web 應用程序的文件上傳功能。
  • Finder - 受 UNIX find 命令啓發的 Java 庫。
  • Flatfile - 用於處理平面數據結構的 Java 庫。
  • Functor - 可以作為對象操作的函數,或表示單個通用函數的對象。
  • Graph - 通用圖形 API 和算法。
  • I18n - 添加由一個或多個本地化文本組成的本地化消息包的功能。
  • Id - Id 是用於生成標識符的組件。
  • Imaging - 圖像庫。
  • IO - I/O 實用程序的集合。
  • Javaflow - 繼續執行以捕獲應用程序的狀態。
  • JCI - Java 編譯器接口。
  • JCS - Java 緩存系統。
  • Jelly - 基於 XML 的腳本和處理引擎。
  • Jexl - 擴展 JSTL 表達式語言的表達式語言。
  • JNet - JNet 允許通過 java.net API 使用動態註冊 url 流處理程序。
  • JXPath - 使用 XPath 語法操作 Java Bean 的實用程序。
  • Lang - 為 java.lang 中的類提供額外的功能。
  • Logging - 包裝各種日誌 API 實現。
  • Math - 輕量級、獨立的數學和統計組件。
  • Monitoring - Monitoring旨在為Java應用程序提供一個簡單但可擴展的監控解決方案。
  • Nabla - Nabla 提供自動微分類,可以生成任何函數實現的派生

Other

  • CUBA 平台 - 用於開發具有豐富 Web 界面的企業應用程序的高級框架,基於 Spring、EclipseLink 和 Vaadin。
  • Light-4J - 內置安全 的快速、輕量級和高效的微服務框架 oauth2/)。
  • Orienteer - 用於快速配置/開發CRM、ERP、LMS等應用的開源業務應用平台。
  • Spring - 為依賴注入、面向方面編程、安全等提供了許多包。

進程

幫助管理操作系統進程的庫。

  • ch.vorburger.exec - 圍繞 Apache Commons Exec 的便捷 API。
  • zt-exec - 為 Apache Commons Exec 和 ProcessBuilder 提供統一的 API。
  • zt-process-killer - 停止從 Java 啓動的進程或通過 PID 的系統進程。

反應式庫

用於開發反應式應用程序的庫。

  • Akka - 用於構建併發、分佈式、容錯和事件驅動應用程序的工具包和運行時。
  • Reactive Streams - 提供非阻塞背壓的異步流處理標準。
  • Reactor - 用於構建反應式快速數據應用程序的庫。
  • RxJava - 允許使用可觀察序列編寫異步和基於事件的程序。
  • vert.x - 多語言事件驅動的應用程序框架。

REST框架

專門用於創建 RESTful 服務的框架。

  • Dropwizard - 使用 Jetty、Jackson、Jersey 和 Metrics 設置現代 Web 應用程序的自以為是的框架。
  • Elide - 基於 JPA 數據模型的 JSON 或 GraphQL-API 的自以為是的框架。
  • Jersey - JAX-RS 參考實現。
  • Microserver - 方便、可擴展的 Spring & Spring Boot 微服務插件系統。擁有 30 多個插件並且還在不斷增長,它同時支持微單體和純微服務風格。
  • Rapidoid - 簡單、安全且極速的框架,由嵌入式 HTTP 服務器、GUI 組件和依賴注入組成。
  • rest.li - 使用類型安全綁定和異步、非阻塞 IO 和端到端開發人員工作流構建健壯、可擴展的 RESTful 架構的框架提倡乾淨的做法、統一的界面設計和一致的數據建模。
  • RESTEasy - JAX-RS 規範的完全認證和可移植的實現。
  • RestExpress - JBoss Netty HTTP 堆棧上的瘦包裝器,可提供擴展性和性能。
  • Restlet Framework - 具有強大路由和過濾能力的開創性框架,以及統一的客户端和服務器API。
  • Spark - 受 Sinatra 啓發的框架。
  • Crnk - 實現 JSON API 規範以構建面向資源的 REST 端點,包括排序、過濾、分頁、鏈接、對象圖、類型安全、批量更新、集成和更多的。
  • springdoc-openapi - 使用 Spring Boot 項目自動生成 API 文檔。
  • Swagger - 標準的、與語言無關的 REST API 接口。

科學

用於科學計算、分析和可視化的庫。

  • BioJava - 通過提供生物信息學中常用的算法、文件格式解析器、排序和 3D 可視化來促進處理生物數據。
  • Chart-FX - 科學圖表庫,專注於大型數據集以 25 Hz 更新率進行性能優化的實時數據可視化。
  • DataMelt - 用於科學計算、數據分析和數據可視化的環境。 (GPL-3.0 或更高版本)
  • Erdos - 用於理論算法的模塊化、輕量級和簡單的圖形框架。
  • GraphStream - 用於建模和分析動態圖的庫。
  • JFreeChart - 用於 Swing、JavaFX 和服務器端應用程序的 2D 圖表庫。 (僅限 LGPL-2.1)
  • JGraphT - 提供數學圖論對象和算法的圖庫。
  • JGraphX - 用於可視化(主要是 Swing)和與節點邊圖交互的庫。
  • LogicNG - 用於創建、操作和求解布爾和偽布爾公式的庫。
  • Mines Java Toolkit - 用於地球物理科學計算、可視化和數字信號分析的庫。
  • Morpheus - 提供一種通用的二維內存高效表格數據結構,稱為 DataFrame,以實現在 JVM 上進行科學計算的高效內存分析。
  • Orson-Charts - 生成各種各樣的 3D 圖表,可以使用 Swing 和 JavaFX 顯示或導出為 PDF、SVG、PNG 和 JPEG。 (僅限 GPL-3.0)
  • Tablesaw - 包括一個數據框、一個嵌入式列存儲以及數百種轉換、彙總或過濾數據的方法。
  • XChart - 用於繪製數據的輕量級庫。許多可定製的圖表類型可用。

搜索

為搜索和分析索引文檔的引擎。

  • Apache Lucene - 高性能、全功能、跨平台的文本搜索引擎庫。
  • Apache Solr - 為大流量優化的企業搜索引擎。
  • Elasticsearch - 具有 RESTful Web 界面和無模式 JSON 文檔的分佈式、多租户、全文搜索引擎。
  • Indexer4j - 簡單輕量的全文索引和搜索庫。

安全

處理安全、身份驗證、授權或會話管理的庫。

  • Apache Shiro - 執行身份驗證、授權、加密和會話管理。
  • Bouncy Castle - 通用加密庫和 JCA 提供程序,提供廣泛的功能,從基本助手到 PGP/SMIME 操作。
  • Cryptomator - 雲中文件的多平台、透明、客户端加密。 (僅限 GPL-3.0)
  • Hdiv - 運行時應用程序可抵禦 OWASP Top 10 中包含的應用程序安全風險,包括 SQL 注入、跨站點腳本、跨站點請求偽造、數據篡改、和蠻力攻擊。
  • jjwt - Java 和 Android 的 JSON Web 令牌。
  • jwt-java - 使用流暢的 API 輕鬆創建和解析 JSON Web 令牌並創建自定義的 JWT 驗證器。
  • Jwks RSA - JSON Web 密鑰集解析器。
  • Kalium - 網絡和密碼學 (NaCl) 庫的綁定。
  • Keycloak - 為瀏覽器應用程序和 RESTful Web 服務集成了 SSO 和 IDM。
  • Keywhiz - 用於分發和管理秘密的系統。
  • Nbvcxz - 高級密碼強度估計。
  • OACC - 提供基於權限的授權服務。
  • OTP-Java - 符合 RFC 4226 (HOTP) 和 RFC 6238 (TOTP) 的一次性密碼生成器庫。
  • pac4j - 安全引擎。
  • Password4j - 用户友好的密碼庫,支持 Argon2、Bcrypt、Scrypt、PBKDF2 和各種其他密碼哈希函數。
  • SecurityBuilder - 適用於 JCA 和 JSSE 類,尤其是 X.509 證書的 Fluent Builder API。
  • SSLContext-Kickstart - 用於使用 SSL/TLS 配置 HTTP 客户端的高級 SSL 上下文構建器。
  • Themis - 多平台高級加密庫提供易於使用的加密來保護敏感數據:具有前向保密的安全消息傳遞、安全數據存儲 (AES256GCM) ;適合構建端到端加密應用程序。
  • Tink - 為常見的加密任務提供簡單且防誤用的 API。

序列化

高效處理序列化的庫。

  • FlatBuffers - 節省內存的序列化庫,無需解包和解析即可訪問序列化數據。
  • FST - JDK 兼容的高性能對象圖序列化。
  • Kryo - 快速高效的對象圖序列化框架。
  • MessagePack - 高效的二進制序列化格式。
  • PHP 序列化器 - 以 PHP 序列化格式序列化對象。

服務器

專門用於部署應用程序的服務器。

  • Apache Tomcat - 用於 Servlet 和 JSP 的強大、全面的服務器。
  • Apache TomEE - Tomcat 加 Java EE。
  • Jetty - 提供 Web 服務器和 javax.servlet 容器,以及對 HTTP/2、WebSocket、OSGi、JMX、JNDI、JAAS 和許多其他集成的支持。
  • nanohttpd - 小巧、易於嵌入的 HTTP 服務器。
  • WildFly - 以前稱為 JBoss,由 Red Hat 開發,具有廣泛的 Java EE 支持。 (僅限 LGPL-2.1)

模板引擎

在模板中替換表達式的工具。

  • Freemarker - 基於模板和變化數據生成文本輸出(HTML 網頁、電子郵件、配置文件、源代碼等)的庫。
  • Handlebars.java - 無邏輯和語義的 Mustache 模板。
  • Jade4J - Pug(原名 Jade)的實現。
  • Jamal - 嵌入到 Maven/JavaDoc 中的可擴展模板引擎,支持多個擴展(Groovy、Ruby、JavaScript、JShell、PlantUml)並支持片段處理。
  • jte - 編譯為類,並使用簡單的語法,多種功能使開發更容易,並提供快速執行和佔用空間小。
  • Jtwig - 模塊化、可配置且經過全面測試的模板引擎。
  • Pebble - 受到 Twig 的啓發,並以其繼承特性和易於閲讀的語法將自己分開。它帶有內置的自動轉義以確保安全,並且包括對國際化的集成支持。
  • Rocker - 優化、內存高效和快速的模板引擎,生成靜態類型的普通對象。
  • StringTemplate - 用於生成源代碼、網頁、電子郵件或任何其他格式化文本輸出的模板引擎。
  • Thymeleaf - 旨在成為 JSP 的替代品並適用於 XML 文件。

測試

從模型到視圖的測試工具。

異步

簡化測試異步服務的工具。

  • Awaitility - 用於同步異步操作的 DSL。
  • ConcurrentUnit - 用於測試多線程和異步應用程序的工具包。
  • GreenMail - 用於集成測試的內存電子郵件服務器。 支持 SMTP、POP3 和 IMAP,包括 SSL。 (僅限 GPL-2.0)
  • Hoverfly Java - Hoverfly 的本機綁定,一個允許您模擬 HTTP 服務的代理。
  • Karate - 結合 API 測試自動化、模擬和性能測試的 DSL,使測試 REST/HTTP 服務變得容易。
  • REST Assured - 用於輕鬆測試 REST/HTTP 服務的 DSL。

BDD

測試源自 TDD 並深受 DDD 和 OOAD 影響的軟件開發過程。

  • Cucumber - 提供一種以客户可以理解的簡單語言描述功能的方法。
  • Cukes-REST - 使用 Cucumber 進行 REST 服務測試的 Gherkin 步驟集合。
  • J8Spec - 遵循類似 Jasmine 的語法。
  • JBehave - 描述故事的可廣泛配置的框架。
  • JGiven - 提供流暢的 API,允許更簡單的組合。
  • Lamdba Behave - 旨在提供一個流暢的 API 來用讀起來像普通英語的長且描述性的句子編寫測試。
  • Serenity BDD - 與 Cucumber、JBehave 和 JUnit 一起使用的自動化驗收測試和報告庫,可以更輕鬆地編寫高質量的可執行規範。

Fixtures

與隨機數據的創建和處理有關的一切。

  • Beanmother - 從 YAML 裝置設置 bean。
  • Fixture Factory - 從模板生成假對象。
  • jFairy - 假數據生成器。
  • Randomized Testing - 用於運行偽隨機 JUnit 測試的 JUnit 測試運行器和插件。
  • Java Faker - Ruby 的假數據生成器的端口。

框架

為特定用例提供運行測試的環境。

  • ArchUnit - 用於指定和斷言架構規則的測試庫。
  • Apache JMeter - 功能測試和性能測量。
  • Arquillian - Java EE 容器的集成和功能測試平台。
  • Citrus - 專注於客户端和服務器端消息傳遞的集成測試框架。
  • Gatling - 為易於使用、可維護性和高性能而設計的負載測試工具。
  • JUnit - 通用測試框架。
  • jqwik - 基於 JUnit 5 構建的基於屬性的測試引擎。
  • Pact JVM - 消費者驅動的合約測試。
  • PIT - 用於評估現有 JUnit 或 TestNG 測試套件的故障檢測能力的快速突變測試框架。

匹配器

提供自定義匹配器的庫。

  • AssertJ - 提高可讀性的流暢斷言。
  • Hamcrest - 可以組合以創建靈活的意圖表達的匹配器。
  • JSONAssert - 簡化 JSON 字符串的測試。
  • Truth - 谷歌流暢的斷言和命題框架。
  • XMLUnit - 簡化了 XML 輸出的測試。

大雜燴

其他與測試有關的東西。

  • ConsoleCaptor - 為單元測試目的捕獲控制枱輸出。
  • junit-dataprovider - JUnit 的類似 TestNG 的數據提供者/運行器。
  • LogCaptor - 捕獲日誌條目以進行單元測試。
  • Mutability Detector - 報告給定類的實例是否不可變。
  • raml-tester - 測試請求/響應是否匹配給定的 RAML 定義。
  • TestContainers - 提供通用數據庫、Selenium Web 瀏覽器或任何其他可以在 Docker 容器中運行的一次性實例。
  • pojo-tester - 自動執行基本 POJO 方法的測試。 (僅限 LGPL-3.0)

模擬

模擬合作者以幫助測試單個、隔離單元的工具。

  • JMockit - 集成測試、API 模擬和偽造以及代碼覆蓋。
  • Mockito - 模擬框架,可讓您使用乾淨簡單的 API 編寫測試。
  • MockServer - 允許模擬與 HTTPS 集成的系統。
  • Moco - 用於存根和模擬的簡潔 Web 服務。
  • PowerMock - 模擬靜態方法、構造函數、最終類和方法、私有方法以及靜態初始化器的刪除。
  • WireMock - 存根和模擬 Web 服務。

實用程序

提供通用實用功能的庫。

  • Arthas - 無需修改代碼或重新啓動服務器即可解決應用程序的生產問題。
  • bucket4j - 基於令牌桶算法的速率限制庫。
  • cactoos - 面向對象原語的集合。
  • CRaSH - 為運行 CRaSH 的 JVM 提供一個 shell。由 Spring Boot 和其他人使用。 (LGPL-2.1 或更高版本)
  • Dex - 強大的 ETL 和數據可視化的 Java/JavaFX 工具。
  • Embulk - 幫助在各種數據庫、存儲、文件格式和雲服務之間傳輸數據的批量數據加載器。
  • fswatch - 監視目錄文件系統變化的微庫,簡化 java.nio.file.WatchService。
  • Gephi - 用於可視化和操作大型圖網絡的跨平台。 (僅限 GPL-3.0)
  • Guava - 集合、緩存、原語支持、併發庫、通用註釋、字符串處理、I/O 等。
  • JADE - 構建和調試多代理系統的框架和環境。 (僅限 LGPL-2.0)
  • Java Diff Utils - 用於文本或數據比較和修補的實用程序。
  • JavaVerbalExpressions - 幫助構建困難的正則表達式的庫。
  • JGit - 實現 Git 版本控制系統的輕量級純 Java 庫。
  • minio-java - 提供簡單的 API 來訪問任何與 Amazon S3 兼容的對象存儲服務器。
  • Protégé - 提供本體編輯器和框架來構建基於知識的系統。
  • Underscore-java - Underscore.js 函數的端口。

版本管理器

幫助創建開發 shell 環境和在不同 Java 版本之間切換的實用程序。

  • jabba - 受 nvm 啓發的 Java 版本管理器。 支持 macOS、Linux 和 Windows。
  • jenv - 受 rbenv 啓發的 Java 版本管理器。 可以全局配置或按項目配置。 在 Debian 和 macOS 上測試。
  • SDKMan - 受 RVM 和 rbenv 啓發的 Java 版本管理器。 支持基於 UNIX 的平台和 Windows。

網絡爬蟲

分析網站內容的庫。

  • Apache Nutch - 用於生產環境的高度可擴展、高度可擴展的網絡爬蟲。
  • Crawler4j - 簡單輕量級的網絡爬蟲。
  • jsoup - 抓取、解析、操作和清理 HTML。
  • StormCrawler - 用於構建低延遲和可擴展網絡爬蟲的 SDK。
  • webmagic - 具有下載、url 管理、內容提取和持久性的可擴展爬蟲。

網絡框架

分析網站內容的庫。

  • Apache Nutch - 用於生產環境的高度可擴展、高度可擴展的網絡爬蟲。
  • Crawler4j - 簡單輕量級的網絡爬蟲。
  • jsoup - 抓取、解析、操作和清理 HTML。
  • StormCrawler - 用於構建低延遲和可擴展網絡爬蟲的 SDK。
  • webmagic - 具有下載、url 管理、內容提取和持久性的可擴展爬蟲。

工作流編排引擎

  • Cadence - 來自 Uber 的有狀態代碼平台。
  • flowable - 緊湊高效的工作流和業務流程管理平台。
  • Temporal - 微服務編排平台,從 Cadence 分叉,但基於 gRPC。

資源

相關awesome列表

Awesome Lists related to the Java & JVM ecosystem.

  • Awesome Annotation Processing
  • Awesome Graal
  • Awesome Gradle Plugins
  • AwesomeJavaFX
  • Awesome JVM
  • Awesome Microservices
  • Awesome REST
  • Awesome Selenium
  • ciandcd
  • Useful Java Links
  • Java Concurrency Checklist
  • Java Developer Roadmap

社區

積極討論。

  • r/java - Java 社區的 Subreddit。
  • 堆棧溢出 - 問答平台。
  • VirtualJUG - 虛擬 Java 用户組。

前端

為此列表提供前端的網站。 請注意,不會有官方網站。 我們不與特定網站關聯,每個人都可以創建一個。

  • java.libhunt.com

Influential Books

Books that made a big impact and are still worth reading.

有影響力的書籍

產生重大影響且仍然值得一讀的書籍。

  • Core Java Volume I--Fundamentals
  • Core Java, Volume II--Advanced Features
  • Effective Java (3rd Edition)
  • Java 併發實踐
  • Thinking in Java

播客和截屏視頻

編程時可以看或聽的東西。

  • A Bootiful Podcast
  • Inside Java (官方)
  • Java Off Heap
  • The Java Council
  • The Java Posse -自 2015 年 2 月起停產。

人物

Twitter

要關注的活躍帳户。來自推特的描述.

  • Adam Bien - 自由作家、JavaOne Rockstar 演講者、顧問、Java Champion。
  • Aleksey Shipilëv - 性能極客、基準測試沙皇、併發錯誤獵人。
  • Antonio Goncalves - Java Champion,JUG Leader,Devoxx France,Java EE 6/7,JCP,作者。
  • Arun Gupta - Java Champion、JavaOne Rockstar、JUG 領導者、Devoxx4Kids-er、Couchbase 開發人員宣傳副總裁。
  • Brian Goetz - Oracle 的 Java 語言架構師。
  • Bruno Borges - 甲骨文的產品經理/Java Jock。
  • Chris Richardson - 軟件架構師、顧問和連續創業者,Java Champion,JavaOne Rock Star,*POJOs in Action-作者。
  • Ed Burns - Oracle 技術人員的諮詢成員。
  • Eugen Paraschiv - Spring Security Course 的作者。
  • Heinz Kabutz - Java Champion,演講者,The Java Specialists' Newsletter 的作者,併發性能專家。
  • Holly Cummins - IBM 倫敦 Bluemix Garage 的技術主管、Java Champion、開發人員、作家、JavaOne RockStar。
  • James Weaver - Java/JavaFX/IoT 開發人員、作者和演講者。
  • Java EE - 官方 Java EE Twitter 帳户。
  • Java 雜誌 - 官方 Java 雜誌帳户。
  • Java - 官方 Java Twitter 帳户。
  • Javin Paul - 知名 Java 博主。
  • Josh Long - Pivotal 的 Spring 倡導者,O'Reilly 的 Cloud Native Java 和使用 Spring Boot 構建微服務的作者,JavaOne Rock Star。
  • Lukas Eder - Java Champion、演講者、創始人兼 CEO Data Geekery (jOOQ)。
  • Mani Sarkar - Java Champion、Polyglot、參與@graalvm 的軟件工匠、AI/ML/DL、數據科學、開發人員社區、演講者和博主。像這樣的幾個很棒的列表的創建者。
  • Mario Fusco - RedHatter,JUG 協調員,經常演講和作者。
  • Mark Heckler - Pivotal 首席技術專家和開發人員倡導者、會議發言人、出版作者和 Java Champion,專注於物聯網和雲。
  • Mark Reinhold - 甲骨文 Java 平台組首席架構師。
  • Markus Eisele - Java EE 佈道者,Red Hat。
  • Martijn Verburg - London JUG 聯合領導者、演講者、作者、Java Champion 等等。
  • Martin Thompson - 糊塗的表演強盜。
  • Monica Beckwith - 性能顧問,JavaOne Rock Star。
  • OpenJDK - 官方 OpenJDK 帳户。
  • Peter Lawrey - Java 性能專家 Peter Lawrey。
  • Randy Shoup - Stitch Fix 工程副總裁,演講者,JavaOne RockStar。
  • Reza Rahman - Java EE/GlassFish/WebLogic 佈道者、作家、演講者、開源黑客。
  • Sander Mak - Java Champion,作者。
  • Simon Maple - Java Champion,VirtualJUG 創始人,LJC 負責人,RebelLabs 的作者。
  • Spencer Gibb - 軟件工程師,爸爸,極客,Spring Cloud Core @pivotal 的聯合創始人和負責人。
  • Stephen Colebourne - Java Champion,演講者。
  • Trisha Gee - Java Champion 和演講者。
  • Venkat Subramaniam - 作者,休斯頓大學教授,微軟 MVP 獎獲得者,JavaOne RockStar,Java Champion。
  • Vlad Mihalcea - 致力於 Hypersistence Optimizer 的 Java Champion,數據庫愛好者,《高性能 Java 持久性》一書的作者。

其他

  • Groundbreakers - Oracle ACE、Groundbreaker 大使和 Java Champion

網站

這些網站值得閲讀.

  • Baeldung
  • Dzone
  • foojay.io
  • Google Java Style
  • InfoQ
  • Java Algorithms and Clients
  • Java, SQL, and jOOQ
  • Java.net
  • Javalobby
  • JavaWorld
  • JAXenter
  • RebelLabs
  • OverOps Blog
  • TheServerSide.com
  • Vanilla Java
  • Voxxed

貢獻

熱烈歡迎進行貢獻!

請先看 CONTRIBUTING 引導 和 驗證工具.

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.