原创翻译,原始链接 本文为awesome系列中的awesome java

Awesome Java

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 - 使用 JPA 模型和 REST API 生成基于浏览器的 Spring Boot 应用程序。
  • FreeBuilder - 自动生成Builder模式。
  • Geci - 发现需要生成代码的文件,自动更新并使用方便的 API 写入源代码。
  • Immutables - 用于生成简单、安全和一致的值对象的注释处理器。
  • JavaPoet - 生成源文件的 API。
  • JHipster - Spring Boot 和 AngularJS 的 Yeoman 源代码生成器。
  • Joda-Beans - 向 Java 添加可查询属性的小型框架,增强了 JavaBeans。
  • JPA Buddy - 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 - 使用不可变基础设施的原则将 JVM 应用程序部署到 AWS。
  • Capsule - 简单强大的打包部署。类固醇上的胖 JAR,或支持 JVM 优化容器的“Docker for Java”。
  • Central Repository - 最大的二进制组件存储库,作为开源社区的免费服务提供。 Apache Maven 使用的默认值,并且在所有其他构建工具中都可用。
  • Cloudsmith - 完全托管的包管理 SaaS,支持 Maven/Gradle/SBT 并提供免费套餐。
  • Getdown - 用于将 Java 应用程序部署到最终用户计算机并使其保持最新状态的系统。作为 Java Web Start 的替代品而开发。
  • IzPack - 为跨平台部署设置创作工具。
  • JavaPackager - Maven 和 Gradle 插件,它提供了一种将 Java 应用程序打包到本机 Windows、Mac OS X 或 GNU/Linux 可执行文件中的简单方法,并为它们生成安装程序。
  • jlink.online - 通过 HTTP 构建优化的运行时。
  • Nexus - 具有代理和缓存功能的二进制管理。
  • 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 工作表

财务

与金融领域相关的库。

正式验证

形式化方法工具:证明助手、模型检查、符号执行等

  • 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 - 支持多种 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 - 大数据统计分析引擎。
  • 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 - 源代码混淆器。
  • 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 - 实时 Java 应用程序性能监控。具有免费开发帐户的商业服务。
  • JavaMelody - 性能监控和分析。
  • Jaeger 客户端 - Jaeger 客户端。
  • jmxtrans - 连接到多个 JVM 并通过 JMX 查询它们的属性。它的查询语言基于 JSON,它允许非 Java 程序员访问 JVM 属性。支持不同的输出写入,包括 Graphite、Ganglia 和 StatsD。
  • Jolokia - 基于 REST 的 JMX。
  • Metrics - 通过 JMX 或 HTTP 公开指标并将它们发送到数据库。
  • Datadog - 现代监控和分析。
  • nudge4j - 通过字节码注入从 Java 8 浏览器远程开发者控制台。
  • Pinpoint - 开源 APM 工具。
  • Prometheus - 提供多维数据模型、DSL、自治服务器节点等等。
  • Sentry - 与 Sentry 集成,应用程序错误跟踪和性能分析平台。
  • SPM - 为 JVM 应用程序分配事务跟踪的性能监视器。
  • Stagemonitor - JVM 应用程序的开源性能监控和事务跟踪。
  • Sysmon - Java VM 的轻量级平台监控工具。
  • zipkin - 分布式跟踪系统,它收集解决微服务架构中的延迟问题所需的时间数据。

原生

用于使用特定于平台的本机库。

  • Aparapi - 将字节码转换为允许在 GPU 上执行的 OpenCL。
  • JavaCPP - 提供对本机 C++ 的高效和轻松访问。
  • JNA - 无需编写 JNI 即可使用本机库。 还提供通用系统库的接口。
  • JNR - 无需编写 JNI 即可使用本机库。 还提供通用系统库的接口。 与 JNA 相同的目标,但速度更快,并作为即将到来的 [Project Panama] (http://openjdk.java.net/projects/panama) 的基础。

自然语言处理

专门处理文本的库。

  • 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 平台即服务。

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 - 以编程方式创建 PDF 文件。
  • JasperReports - 复杂的报告引擎。 (仅限 LGPL-3.0)
  • Open HTML to PDF - 正确支持基于flyingsaucer和Apache PDFBox的现代PDF标准。
  • OpenPDF - 开源 iText 分支。 (仅限 LGPL-3.0 和 MPL-2.0)
  • Tabula - 从 PDF 文件中提取表格。

性能分析

用于性能分析、分析和基准测试的工具。

  • fastThread - 使用基于云的免费上传界面分析和可视化线程转储。
  • GCeasy - 分析和可视化 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

与随机数据的创建和处理有关的一切。

框架

为特定用例提供运行测试的环境。

  • 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.

社区

积极讨论。

前端

为此列表提供前端的网站。 请注意,不会有官方网站。 我们不与特定网站关联,每个人都可以创建一个。

Influential Books

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

有影响力的书籍

产生重大影响且仍然值得一读的书籍。

播客和截屏视频

编程时可以看或听的东西。

人物

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 持久性》一书的作者。

其他

网站

这些网站值得阅读.

贡献

热烈欢迎进行贡献!

请先看 CONTRIBUTING 引导 和 验证工具.

Java 框架、库和软件的精选列表(awesome java)的更多相关文章

  1. Awesome Go精选的Go框架,库和软件的精选清单.A curated list of awesome Go frameworks, libraries and software

    Awesome Go      financial support to Awesome Go A curated list of awesome Go frameworks, libraries a ...

  2. 7 个最佳的 Java 框架

    毫无疑问,Java是目前最需要的编程语言之一.在这里,我们已经挖掘了一些关于框架趋势的有用信息,以减轻全球软件开发人员的日常工作. 根据RebelLabs,也是在线Java用户组(虚拟JUG)的媒体盟 ...

  3. 2016年7款最流行的Java框架

    虽然Java一直被唱衰,但是直到现在Java也坚持霸主地位不动摇,毫无疑问,Java是目前最热门的编程语言之一,所以我们为大家搜集了一些目前比较受欢迎的Java框架的消息. 根据RebelLabs对在 ...

  4. 分享几款流行的Java框架

    虽然Java一直被唱衰,但是直到现在Java软件开发也坚持霸主地位不动摇,毫无疑问,Java是目前最热门的编程语言之一,下面分享几个个人认为还不错的Java框架,以及各自的优缺点,希望能对大家有帮助. ...

  5. java 第三方库

    转载自http://www.cnblogs.com/lucus-jia/p/3483511.html java 第三方库   总结一下常用的java第三方库,方便查询和使用,欢迎补充. 1.核心库 A ...

  6. Java框架介绍-13个不容错过的框架项目

    本文转自互联网,个人收藏所用. 下面,我们将一同分享各有趣且颇为实用的Java库,大家请任取所需.不用客气~ 1.极致精简的Java Bootique是一项用于构建无容器可运行Java应用的极简技术. ...

  7. Java 专业人士必备的书籍和网站列表

    对于 Java™ 语言开发人员来说,信息过量是一个真正的问题.每个新入行的程序员都要面临一个令人畏缩的挑战:要进入的行业是一个具有海量知识的行业.要了解的东西简直 太多了.对于有经验的老手来说,情况只 ...

  8. 为什么选择 Spring 作为 Java 框架

    1. 概述 在本文中,我们将讨论 Spring 作为最流行的 Java 框架之一的主要价值体现. 最重要的是,我们将尝试理解 Spring 成为我们选择框架的原因.Spring 的详细信息及其组成部分 ...

  9. GitHub上那些值得一试的JAVA开源库--转

    原文地址:http://www.jianshu.com/p/ad40e6dd3789 作为一名程序员,你几乎每天都会使用到GitHub上的那些著名Java第三方库,比如Apache Commons,S ...

随机推荐

  1. suse 12 编译部署Keepalived + nginx 为 kube-apiserver 提供高可用

    文章目录 编译部署nginx 下载nginx源码包 编译nginx 配置nginx.conf 配置nginx为systemctl管理 分发nginx二进制文件和配置文件 启动kube-nginx服务 ...

  2. suse 12 二进制部署 Kubernetets 1.19.7 - 番外篇 - 增加node节点

    文章目录 0.前景提要 1.准备node节点环境 1.0.修改配置脚本参数 1.1.配置免密 1.2.添加hosts解析 1.3.修改主机名 1.4.更新PATH变量 1.5.安装依赖包 1.6.关闭 ...

  3. Cobbler 批量安装操作系统

    文章目录 环境准备 部署cobbler cobbler语法检查以及排错 问题1 问题2 问题3 问题4 问题5 问题6 问题7 问题8 修改dhcp模板 重启服务,再次检查 镜像配置 镜像导入 kic ...

  4. Jenkins系列之pipeline语法介绍与案例

    Jenkins Pipeline 的核心概念: Pipeline 是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化. ...

  5. 转:Minikuberar的含义很不错可以看看

    Kubernetes的主要意图是通过杂乱的负载均衡和资源分配功用跨服务器集群保管使用程序.即使某些服务器呈现毛病,也能够保证使用程序平稳运转.因而在出产布置中,有必要为Kubernetes装备多个服务 ...

  6. DDD与数据事务脚本

    DDD与数据事务脚本 扯淡 相信点进来看这篇文章的同学,大部分是因为标题里面的"DDD"所吸引!DDD并不是一个新技术,如果你百度一下它的历史就会知道,实际上它诞生于2004年, ...

  7. #刷题记录--剑指 Offer 07. 重建二叉树

    输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 抓住一点,通过递归进行节点创建时,是按照 前序遍历数组 进行创建的. 根节点,根节点的左 ...

  8. bugku-Web md5 collision writeup

    访问题目链接,得到提示input a,而题目是md5 collision,md5碰撞.所以找一个md5是oe开头的值,get方式传参过去,PAYLOAD http://114.67.246.176:1 ...

  9. 用图帮你了解https的原理

    Http存在的问题 上过网的朋友都知道,网络是非常不安全的.尤其是公共场所很多免费的wifi,或许只是攻击者的一个诱饵.还有大家平时喜欢用的万能钥匙,等等.那我们平时上网可能会存在哪些风险呢? 泄密, ...

  10. containerd与kubernetes集成部署

    概念介绍 cri (Container runtime interface) cri is a containerd plugin implementation of Kubernetes conta ...