指南与参考
面向 Java 开发者的指南、教程、示例和实用参考。
- Design Patterns - 最常见设计模式的实现与解释。
- FizzBuzz Enterprise Edition - 由严肃商人为了严肃商业目的而制作的 FizzBuzz 务实实现。(无明确许可证)
- Modern Java - A Guide to Java 8 - 广受欢迎的 Java 8 指南。
- Java Developer Roadmap
- Java Concurrency Checklist
- Java Evolved - 传统与现代 Java 模式的并排比较。
- Which JDK - 常见 JVM 概览及其优缺点。
- Google Java Style
- Java Algorithms and Clients
- TheCodeForge Java Tutorials
开发
在基础层面增强开发过程。
- Ghidra - 可扩展的软件逆向工程框架,提供 Java API 和脚本支持。
- JavaParser - 解析、修改和生成 Java 代码。
- Manifold - 通过类型安全元编程、结构类型和扩展方法等强大特性为 Java 注入新活力。
- HotswapAgent - 无限制的运行时类和资源重定义。
- JGit - 轻量级纯 Java 库,实现 Git 版本控制系统。
- AspectJ - 无缝的面向切面编程扩展。
- Faux Pas - 通过规避 Java 运行时中默认不允许任何函数式接口抛出受检异常的问题,简化错误处理的库。
- NoException - 允许在函数式接口中使用受检异常,并将异常转换为 Optional 返回。
- SneakyThrow - 忽略受检异常而无需字节码操作,也可用于 Java 8 流操作中。
- Tail - 使用尾调用优化实现无限递归。
- RR4J - RR4J 是一个记录 Java 字节码执行并允许开发者在本地重放的工具。
- Jctx - 读取 Java 项目并生成结构化上下文文件,使 AI 工具能够理解并帮助规划代码库。
Web 框架
处理 Web 应用各层之间通信的框架。
- Spring Boot - 用于创建独立、生产级 Spring 应用的框架。
- Play - 基于 Akka,为 Java 和 Scala 中的高可扩展应用提供可预测且极少的资源消耗(CPU、内存、线程)。
- Javalin - 用于 Web 应用的微框架。
- Blade - 轻量级、模块化框架,力求优雅简洁。
- Erupt - 注解驱动的低代码与 JPA 可视化。
- Ratpack - 一组库,促进快速、高效、可演进且经过良好测试的 HTTP 应用。
- PrimeFaces - JSF 框架,提供免费和商业/支持版本以及前端组件。
- Ninja - 全栈 Web 框架。
- Jooby - 可扩展、快速且模块化的微框架,提供多种编程模型。
- Bootique - 用于可运行应用的最小化意见框架。
- ActiveJ - 从头构建的轻量级异步框架,用于开发高性能 Web 应用。
- Takes - 围绕真正的面向对象编程和不可变性概念构建的固执己见的 Web 框架。
- Apache Wicket - 类似 Tapestry 的基于组件的 Web 应用框架,具有有状态 GUI。
- Pippo - 小型、高度模块化、类似 Sinatra 的框架。
- tinystruct - 轻量级、可插拔框架,用于构建支持 CLI、HTTP 和模块化扩展的 Java 应用。
- Apache Tapestry - 面向组件的框架,用于创建动态、健壮、高度可扩展的 Web 应用。
- webforJ - 全栈平台,通过 Web 组件库在服务端使用 Java 组合 UI。
- Vaadin - 用于构建具有服务器端组件的浏览器应用的全栈 Java 平台。
- WebForms Core - 一种从服务端管理 HTML 标签的技术。
搜索
用于索引文档以进行搜索和分析的引擎。
- Elasticsearch - 分布式、支持多租户的全文搜索引擎,具有 RESTful Web 接口和无模式 JSON 文档。
- OpenSearch - 源自 Elasticsearch 的分布式搜索和分析引擎。
- Apache Lucene - 高性能、功能全面、跨平台的文本搜索引擎库。
- Apache Solr - 针对高流量场景优化的企业级搜索引擎。
- Elasticsearch Java Client - Elasticsearch 的官方类型化 Java 客户端。
- Viglet Turing ES - 自托管的企业搜索平台,支持分面搜索、语义搜索和混合搜索、RAG、AI 代理,以及可插拔的 Solr、Elasticsearch 或 Lucene 后端。
序列化
高效处理序列化的库。
- Protobuf - Google 的数据交换格式。
- FlatBuffers - 内存高效的序列化库,无需解包和解析即可访问序列化数据。
- Apache Thrift - 源自 Facebook 的数据交换格式。
- Kryo - 快速高效的对象图序列化框架。
- Apache Fory - 支持 JIT 和零拷贝的高性能对象图序列化框架。
- Wire - 简洁轻量的 Protocol Buffers。
- SBE - 简单二进制编码,是最快的消息格式之一。
- Apache Avro - 具有动态类型、无标签数据且无需手动分配 ID 的数据交换格式。
- Apache Parquet - 基于 Google Dremel 论文中的汇编算法的列式存储格式。
- MessagePack - 高效的二进制序列化格式。
- Apache Orc - 面向 Hadoop 工作负载的快速高效列式存储格式。
- XMLBeam - 通过代码中的注解或 XPath 处理 XML。
平台
包含多个库并涵盖多个类别的框架套件。
- Spring Framework - 用于构建 Java 应用的综合性应用框架。
- Light-4J - 快速、轻量且高效的微服务框架,内置安全性。
- Lang - 为 java.lang 中的类提供额外功能。
- IO - I/O 工具集合。
- Collections - 扩展或增强 Java 集合框架。
- CUBA Platform - 基于 Spring、EclipseLink 和 Vaadin 的高层框架,用于开发具有丰富 Web 界面的企业应用。
- Math - 轻量级、自包含的数学与统计组件。
- Pool - 通用对象池组件。
- Codec - 通用编码/解码算法,例如语音、base64 或 URL。
- Imaging - 图像库。
- CSV - 用于读写逗号分隔值文件的组件。
- Compress - 定义用于处理 tar、zip 和 bzip2 文件的 API。
- CLI - 命令行参数解析器。
- DbUtils - JDBC 辅助库。
- DBCP - 数据库连接池服务。
- BeanUtils - 围绕Java反射和内省API的易用封装。
- Net - 网络工具与协议实现集合。
- BCEL - 字节码工程库——分析、创建和操作 Java 类文件。
- FileUpload - 为你的Servlet和Web应用提供文件上传功能。
- VFS - 虚拟文件系统组件,将文件、FTP、SMB、ZIP 等视为单一逻辑文件系统。
- Jexl - 扩展 JSTL 表达式语言的表达式语言。
- Validator - 用于在 XML 文件中定义验证器和验证规则的框架。
- Configuration - 读取各种格式的配置/偏好文件。
- Email - 用于从 Java 发送电子邮件的库。
- Logging - 多种日志 API 实现的封装。
- Exec - 用于处理 Java 中外部进程执行和环境管理的 API。
- JCS - Java 缓存系统。
- Daemon - 用于类Unix守护进程Java代码的替代调用机制。
- SCXML - State Chart XML 规范的实现,旨在创建和维护 Java SCXML 引擎。
- RNG - Commons Rng 提供伪随机数生成器的实现。
- Digester - XML 到 Java 对象映射工具。
- RDF - RDF 1.1 的通用实现,可由 JVM 上的系统实现。
- Graph - 通用图 API 和算法。
- JXPath - 使用 XPath 语法操作 Java Beans 的工具。
- BSF - Bean 脚本框架——脚本语言接口,包括 JSR-223。
- Weaver - 提供一种简单的方式来增强(织入)已编译的字节码。
- Jelly - 基于 XML 的脚本与处理引擎。
- JCI - Java 编译器接口。
- ClassScan - 无需加载即可查找类接口、方法、字段和注解。
- CLI2 - Commons CLI 的重新设计。
- Convert - Commons-Convert 旨在提供一个专门用于将一种类型的对象转换为另一种类型的对象的单一库。
- Finder - 受 UNIX find 命令启发的 Java 库。
- Flatfile - 用于处理平面数据结构的 Java 库。
- I18n - 添加由属于一起的一个或多个本地化文本组成的本地化消息包功能。
- Id - Id 是用于生成标识符的组件。
- Javaflow - 用于捕获应用程序状态的延续实现。
- JNet - JNet 允许通过 java.net API 动态注册 URL 流处理器。
- Monitoring - Monitoring 旨在为 Java 应用提供简单但可扩展的监控解决方案。
- Nabla - Nabla 提供自动微分类,可生成用 Java 语言实现的任何函数的导数。
- OpenPGP - 使用 OpenPGP 签名和验证数据的接口。
- Performance - 用于微基准测试客户端的小型框架,提供 Commons DBCP 和 Pool 的实现。
- Pipeline - 提供一组围绕并行运行的工作队列设计的管道工具,用于顺序处理数据对象。
工具
提供通用工具函数的库。
- Guava - 集合、缓存、原语支持、并发库、常见注解、字符串处理、I/O 等。
- bucket4j - 基于令牌桶算法的限流库。
- Jimfs - 内存文件系统。
- Zip4j - 读取、写入、加密和流式处理 ZIP 文件。
- Java Diff Utils - 用于文本或数据比较和修补的工具。
- Java UUID Generator - 生成标准 UUID 版本,包括时间有序的 UUIDv6 和 UUIDv7。
- cactoos - 面向对象原语集合。
- Underscore-java - Underscore.js 函数的移植。
- PipelinR - 用于处理管道中处理器和命令的小型工具库。
- java-util - 零依赖、高性能工具集,包含 Converter(通用类型转换)、DeepEquals、CaseInsensitiveMap、TTLCache、CompactMap、MultiKeyMap 以及对象图遍历。
- Semver4j - 轻量级库,帮助以不同模式处理语义化版本。
- JEmoji - 自动生成的 emoji 库,为 Discord、Slack、GitHub 等提供类型安全的直接访问和别名支持。
- fswatch - 用于监视目录文件系统变化的微型库,简化 java.nio.file.WatchService。
- JKScope - 受 Kotlin 启发的 Java 作用域函数。
- java-refined - 零依赖的 Java 8+ 细化类型,提供覆盖数值、字符串和集合的类型安全包装器。
- ISBN core - 一个小型库,包含 ISBN-10 和 ISBN-13 的表示对象,以及解析、验证和格式化工具。
- spring-chain-of-responsibility - 通过
@Order和@ChainNext将 Spring Boot Bean 自动装配到责任链中,无需手动装配。
反编译
用于反编译 JVM 字节码的库。
- jadx - 具有命令行和图形界面的 Dex 到 Java 反编译器。
- Fernflower - 支持广泛 JVM 字节码的 Java 反编译器。
- CFR - 专注于现代语言特性的 Java 反编译器。
- Vineflower - Fernflower 的现代维护分支。
- transformer-api - 统一 API,通过一个内存转换接口暴露多个反编译器。
响应式库
用于开发响应式应用程序的库。
- RxJava - 允许使用可观察序列组合异步和基于事件的程序。
- vert.x - 多语言事件驱动应用程序框架。
- Akka - 用于构建并发、分布式、容错和事件驱动应用程序的工具包和运行时。
- Reactive Streams - 为具有非阻塞背压的异步流处理提供标准。
- Reactor - 用于在 JVM 上构建非阻塞应用程序的框架,提供对响应式编程的支持。
HTTP 客户端
辅助创建 HTTP 请求和/或绑定响应的库。
- OkHttp - 适用于 JVM、Android 和 GraalVM 的 HTTP 客户端。
- Retrofit - 类型安全的 REST 客户端。
- Feign - 受 Retrofit、JAXRS-2.0 和 WebSocket 启发的 HTTP 客户端绑定器。
- Async Http Client - 异步 HTTP 和 WebSocket 客户端库。
- Ribbon - 在云端经过实战检验的客户端IPC库。
- unirest-java - 简化、轻量级的 HTTP 客户端库。
- Google HTTP Client - 可插拔的 HTTP 传输抽象,支持 java.net.HttpURLConnection、Apache HTTP Client、Android、Google App Engine、XML、Gson、Jackson 和 Protobuf。
- JQuickCurl - 通过注解、XML 配置和动态代理客户端从 cURL 语法执行 HTTP 请求。
- Riptide - 用于 Spring 的 RestTemplate 的客户端响应路由。
- methanol - HTTP 客户端扩展库。
- Apache HttpComponents - 专注于HTTP及相关协议的低级Java组件工具集。
网络
用于构建网络客户端和服务端的库。
- Dubbo - 高性能 RPC 框架。
- Netty - 用于构建高性能网络应用的框架。
- gRPC-java - 基于 protobuf 和 HTTP/2 的 RPC 框架。
- Java-WebSocket - 轻量级 WebSocket 客户端和服务端实现。
- Socket.IO Client Java - Socket.IO 服务器的 Java 客户端。
- Atmosphere - 实时传输框架,支持 WebSocket、SSE、gRPC 和 WebTransport。
- Undertow - 基于 NIO 提供阻塞和非阻塞 API 的 Web 服务器。用作 WildFly 中的网络层。
- sshj - 以编程方式使用 SSH、SCP 或 SFTP。
- Apache MINA sshd - SSH 客户端、服务端、SFTP 和 SCP 的 Java 实现。
- dnsjava - DNS 协议的 Java 实现。
- ServiceTalk - 基于 Netty 构建的框架,提供针对特定协议的 API,并支持多种编程范式。
- MINA - 抽象、事件驱动的异步 I/O API,通过 Java NIO 进行 TCP/IP 和 UDP/IP 网络操作。
- Drift - 基于注解、易于使用的库,用于创建 Thrift 客户端和可序列化类型。
- TLS Channel - 在 SSLEngine 上实现 ByteChannel 接口,从而提供易于使用(类似套接字)的 TLS。
- Grizzly - NIO 框架。用作 Glassfish 中的网络层。
- MinimalFTP - 轻量、小巧且可定制的 FTP 服务器。
- AISmessages - 解码 NMEA 封装的 AIS 消息,用于海事导航和安全系统,支持 ITU-R M.1371,无运行时依赖。(CC-BY-NC-SA-4.0)
- Fluency - 高吞吐量数据摄取日志器,用于 Fluentd 和 Fluent Bit。
- java-ngrok - ngrok 的 Java 封装;用于入口、Webhook、演示和 API 的可编程隧道。
- urnlib - 表示、解析和编码 URN,如 RFC 2141 所述。
- Commons-networking - 服务器发送事件(SSE)客户端。
- WebSocket4Java - 基于 JDK NIO 和虚拟线程的 WebSocket 框架,运行时零第三方依赖。
监控
通过提供遥测数据来观察/监控生产环境应用的工具。
- Arthas - 无需修改代码或重启服务器即可排查应用的生产问题。
- zipkin - 分布式追踪系统,用于收集微服务架构中排查延迟问题所需的时序数据。
- Pinpoint - 开源 APM 工具。
- Dropwizard Metrics - 通过 JMX 或 HTTP 暴露指标并将其发送到数据库。
- HertzBeat - 具有自定义监控和无代理功能的实时监控系统。
- hippo4j - 动态可观测的线程池框架。
- BTrace - 无需重启即可对运行中的 JVM 应用进行动态跟踪和诊断。
- Micrometer - 面向最流行的指标/可观测性库的厂商中立指标/可观测性门面。
- JavaMelody - 性能监控和分析。
- OpenTelemetry - 检测、生成、收集和导出遥测数据,以帮助分析软件的性能和行为。
- Prometheus - 提供多维数据模型、DSL、自主服务器节点等。
- Glowroot - 开源 Java APM。
- Sentry - 与 Sentry(应用错误跟踪和性能分析平台)集成。
- Jolokia - 基于 REST 的 JMX。
- Datadog - 现代监控与分析。
- Automon - 将 AOP 的强大功能与监控和/或日志工具相结合。
- Micrometer Tracing - 面向最流行的追踪器库的中立分布式追踪门面。
- inspectIT Ocelot - 收集应用性能、跟踪和行为数据的 Java 代理。
- StatLite - 自托管监控仪表板,直接集成 Spring Boot Actuator/Micrometer 和 Quarkus,使用 SQLite 存储,无需 Prometheus 或 Grafana。
- SPM - 面向 JVM 应用的性能监控器,支持分布式事务追踪。
- Apitally - 面向 Spring Boot 应用的简单、注重隐私的 API 监控、分析和请求日志记录。
- Boot Usage Spring Boot Starter - Spring Boot Actuator 扩展,提供应用启动和运行时指标,包括 JVM 运行时间、内存使用率和 CPU 负载。
安全
处理安全、认证、授权或会话管理的库。
- Keycloak - 面向浏览器应用和 RESTful Web 服务的集成 SSO 和 IDM。
- Cryptomator - 跨平台、透明的云文件客户端加密。
- jjwt - 用于 Java 和 Android 的 JSON Web Token。
- Spring Security - 支持 OAuth 2.1 和 OpenID Connect 授权服务器的身份验证与访问控制框架。
- OWASP Dependency-Check - 检测项目依赖中已公开披露的漏洞。
- ScribeJava - 支持 OAuth 1.0a、OAuth 2.0 和众多提供者的 OAuth 客户端库。
- Apache Shiro - 执行认证、授权、加密和会话管理。
- Dependency-Track - 用于识别供应链风险的软件组成分析平台。
- Jasypt Spring Boot - 将加密属性与 Spring Boot 应用程序集成。
- Bouncy Castle - 通用加密库和 JCA 提供程序,提供从基本辅助功能到 PGP/SMIME 操作的广泛功能。
- pac4j - 安全引擎。
- Themis - 跨平台高级加密库,提供易于使用的加密功能以保护敏感数据:具有前向保密的安全消息传递、安全数据存储 (AES256GCM);适合构建端到端加密应用程序。
- Topaz - 支持 RBAC、ABAC 和 ReBAC 的应用程序细粒度授权。
- Certificate Ripper - 用于从 HTTPS 端点提取和导出服务器证书的 CLI 工具和库。
- OpenAM - 访问管理解决方案,包括认证、SSO、授权、联合、权限和 Web 服务安全。
- WebAuthn4J - 服务端 WebAuthn 和 passkey 验证库。
- Ayza - 用于配置 HTTP 客户端和服务器的 SSL/TLS 的高级 SSL 配置构建器。
- Password4j - 用户友好的加密库,支持 Argon2、Bcrypt、Scrypt、PBKDF2 以及各种其他加密哈希函数。
- Passay - 通过根据可配置的规则集验证候选密码来强制执行密码策略。
- Nbvcxz - 高级密码强度评估。
- Tink - 为常见加密任务提供简单且不易误用的 API。
- OTP-Java - 根据 RFC 4226(HOTP)和 RFC 6238(TOTP)的一次性密码生成器库。
- Jwks RSA - JSON Web Key Set 解析器。
- SecurityBuilder - 用于 JCA 和 JSSE 类,尤其是 X.509 证书的流畅构建器 API。
- jwt-java - 使用流畅 API 轻松创建和解析 JSON Web 令牌,并创建自定义的 JWT 验证器。
- Bashkit4j - 沙箱化 bash 解释器,用于在进程内运行不受信任的脚本:内存文件系统、可选的白名单主机挂载、默认拒绝网络访问。
- MOSS - 使用 ML-DSA-44 后量子签名对 AI 代理进行加密签名,为归因和合规性创建审计跟踪。
图像
协助创建、评估或操作图形图像的库。
- Glide - 面向 Android 的图像加载和缓存库,专注于平滑滚动。
- ZXing - 多格式一维/二维条码图像处理库。
- Thumbnailator - 高质量缩略图生成库。
- webcam-capture - 直接在 Java 中使用内置和外接摄像头的库。
- TwelveMonkeys - 扩展支持的图像文件格式数量的插件集合。
- Tess4J - Tesseract OCR API 的 JNA 封装。
- Imgscalr - 简单、高效且硬件加速的图像缩放库,使用纯 Java 2D 实现。
- scrimage - 用于图像处理的不可变、函数式且高性能的 JVM 库。
- image-comparison - 比较两张相同尺寸的图像,并通过绘制矩形直观显示差异。图像的某些部分可从比较中排除。
- vips-ffm - 使用 Java 的“外部函数与内存”API 对 libvips 的全面绑定。
- Barcode-Lib4J - 生成 QR 码、DataMatrix 及其他一维/二维条码,输出为矢量(PDF、EPS、SVG)和光栅(PNG、BMP、JPG)图像,支持 DPI 感知、高精度和 CMYK 色彩模型。
测试
从模型到视图的测试工具。
- selenium - 浏览器自动化框架及生态系统。
- Mockito - 模拟框架,让你使用简洁的 API 编写测试。
- Apache JMeter - 功能测试和性能测量。
- Karate - 结合 API 测试自动化、模拟和性能测试的 DSL,使 REST/HTTP 服务测试变得简单。
- Testcontainers - 提供常见数据库、Selenium 浏览器或任何可在 Docker 容器中运行的临时实例。
- WireMock - 存根和模拟 Web 服务。
- REST Assured - 用于轻松测试 REST/HTTP 服务的 DSL。
- JUnit - 通用测试框架。
- Gatling - 负载测试工具,设计注重易用性、可维护性和高性能。
- Robolectric - 在 JVM 上运行 Android 测试,无需模拟器或设备。
- MockServer - 允许模拟与 HTTPS 集成的系统。
- Moco - 用于存根和模拟的简洁 Web 服务。
- Awaitility - 用于同步异步操作的 DSL。
- AssertJ - 提高可读性的流畅断言。
- Cucumber - 提供一种用客户能理解的通俗语言描述功能的方式。
- Truth - Google 的流畅断言和命题框架。
- PIT - 快速变异测试框架,用于评估现有 JUnit 或 TestNG 测试套件的故障检测能力。
- Datafaker - 从 Java Faker 分叉而来的现代假数据生成器。
- Instancio - 通过生成完整、可复现的对象来自动化单元测试中的数据设置。包含 JUnit 5 扩展。
- Pact JVM - 消费者驱动的契约测试。
- JsonUnit - 简化测试中 JSON 比较的库。
- jqwik - 基于 JUnit 5 构建的属性测试引擎。
- EasyMock - EasyMock 是一个 Java 库,提供在单元测试中轻松使用 Mock 对象的方法。
- Serenity BDD - 自动化验收测试和报告库,与 Cucumber、JBehave 和 JUnit 配合使用,使编写高质量可执行规范更加容易。
- GreenMail - 用于集成测试的内存邮件服务器。支持 SMTP、POP3 和 IMAP,包括 SSL。
- jFairy - 假数据生成器。
- junit-pioneer - JUnit 5 扩展包,推动 Jupiter 的前沿。
- JMeter DSL.java - 像 JUnit 测试一样简单的 JMeter 负载测试。
- Citrus - 集成测试框架,同时关注客户端和服务端消息传递。
- JMockit - 集成测试、API 模拟和伪造,以及代码覆盖率。
- JGiven - 提供流畅的 API,使组合更简单。
- LogCaptor - 捕获日志条目以用于单元测试。
- ConcurrentUnit - 用于测试多线程和异步应用程序的工具包。
- Arquillian - 面向 Java EE 容器的集成与功能测试平台。
- WebTau - 使用一致的匹配器和概念,跨 REST-API、GraphQL、浏览器、数据库、CLI 和业务逻辑进行测试。
- AutoParams - 支持生成测试数据或组合参数化测试的场景。
- XMLUnit - 简化 XML 输出的测试。
- junit-dataprovider - 类似 TestNG 的 JUnit 数据提供器/运行器。
- JMock - JMock 是一个用 Java 实现的高性能数据生成与模拟组件库。
- Randomized Testing - JUnit 测试运行器和插件,用于以伪随机方式运行 JUnit 测试。
- Hoverfly Java - Hoverfly 的原生绑定,Hoverfly 是一个允许模拟 HTTP 服务的代理。
- weld-testing - 一组测试框架扩展(JUnit 4、JUnit 5、Spock),通过 Weld 增强 CDI 组件的测试。支持 Weld 5。
- Selfie - 快照测试(内联和磁盘)。
- BitDive Java Agent - 用于捕获 BitDive 测试的运行时跟踪、SQL 查询和 HTTP 负载的 Java 代理。
- J8Spec - 遵循类似 Jasmine 的语法。
- JBehave - 高度可配置的框架,用于描述故事。
- ConsoleCaptor - 捕获控制台输出以用于单元测试。
- cdi-test - JUnit 扩展,用于轻松高效地测试 CDI 组件。
- Kensa - 面向 Java 和 Kotlin 的代码优先 BDD 框架,可从测试代码生成交互式 HTML 报告和时序图。
- kubetest4j - 声明式、基于注解的 Kubernetes 和 OpenShift 测试库,具有自动资源生命周期管理、多集群支持和集成日志收集。
- Stebz - 多方法测试步骤管理框架。
- log-capture - 捕获日志条目,并为单元测试和集成测试提供断言。
- Selenium Boot - 零样板 Selenium + TestNG 框架,具有自动驱动程序管理、智能重试、自愈定位器、AI 失败分析和内置 HTML 报告。
- skipper-java - 通过 Google 表格实现实时测试执行控制,无需修改代码即可即时切换。
- test-watch-maven-plugin - Maven 插件,提供受 Vitest 启发的测试监视模式,支持智能选择和并行执行。
- Qualflare TestNG - TestNG 监听器,保留每次重试尝试,并将超时和配置失败报告为不同状态。
消息传递
帮助在客户端之间发送消息以确保协议无关性的工具。
- Apache Kafka - 高吞吐量分布式消息系统。
- Apache RocketMQ - 快速、可靠且可扩展的分布式消息平台。
- Apache Pulsar - 分布式发布/订阅消息系统。
- AutoMQ - AutoMQ 是一个云原生、无服务器的 Kafka 重塑,易于扩展、免运维且成本效益高。
- Aeron - 高效、可靠的单播和多播消息传输。
- Apache Camel - 通过企业集成模式将不同的传输 API 粘合在一起。
- Svix - 用于 Svix API 发送 webhook 和验证签名的库。
- Apache ActiveMQ - 实现 JMS 并将同步通信转换为异步通信的消息代理。
- JeroMQ - ZeroMQ 的实现。
- Smack - 跨平台 XMPP 客户端库。
- Pushy - 用于发送 Apple Push Notification service 消息的 Java 库。
- RabbitMQ Java client - RabbitMQ 客户端。
- Simple Java Mail - 使用简洁流畅 API 的邮件发送。
- HiveMQ MQTT Client - 用于 MQTT 3.1.1 和 MQTT 5 的响应式和阻塞式 Java 客户端。
- Hermes - 构建于 Kafka 之上的快速可靠消息代理。
- NATS client - NATS 客户端。
- CloudEvents Java SDK - 用于创建、序列化和传输 CloudEvents 的 Java SDK。
- Emissary - 简单、轻量且快速的解耦消息(请求和事件)与消息处理器的消息库。
- Apache Qpid for Java - 实现 AMQP 的 Java 消息客户端和代理。
微服务
用于创建和管理微服务的工具。
- Nacos - 用于构建云原生应用的动态服务发现、配置和服务管理平台。
- Sentinel - 流控组件,为微服务提供可靠性、韧性和监控。
- Quarkus - 专为 HotSpot 和 Graal VM 定制的 Kubernetes 技术栈。
- Eureka - 基于 REST 的服务注册中心,用于弹性负载均衡和故障转移。
- Micronaut - 现代全栈框架,专注于模块化、最小内存占用和启动时间。
- Armeria - 基于 Java 8、Netty、HTTP/2、Thrift 和 gRPC 构建的异步 RPC/REST 客户端/服务器库。
- Helidon - 编写微服务的两种风格:函数式响应式以及作为 MicroProfile 的实现。
- gRPC Spring - 用于构建 gRPC 客户端和服务端的 Spring Boot 集成。
工作流编排引擎
用于编排长时间运行的工作流和业务流程的引擎。
- Conductor - 用于分布式应用和 AI 代理的事件驱动工作流引擎。
- Apache DolphinScheduler - 分布式工作流编排平台,支持可视化及 API 驱动的调度。
- Activiti - 可嵌入的 BPMN 工作流和业务流程引擎。
- flowable - 紧凑高效的工作流和业务流程管理平台。
- Maestro - 由 Netflix 开发的工作流编排引擎。
- Temporal Java SDK - 用于在 Temporal 上编写持久工作流和活动的 Java SDK。
- Cadence Java Client - 用于 Cadence 编排服务的 Java 客户端和工作流框架。
任务调度
用于调度后台任务的库。
- XXL-JOB - 分布式任务调度平台,具有集中管理和执行监控功能。
- Quartz - 功能丰富、开源的作业调度库,可集成到几乎任何 Java 应用程序中。
- shedlock - 确保你的计划任务在同一时间最多执行一次。如果某个任务在一个节点上执行,它会获取一个锁,防止同一任务在另一个节点或线程上执行。
- JobRunr - 利用 lambda 实现即发即忘、延迟和重复任务的作业调度库。通过乐观锁定保证由单个调度器实例执行。具有持久化特性、依赖极少且可嵌入。
- db-scheduler - 持久化且适合集群的调度器。
- Sundial - 轻量级框架,可简单定义作业、定义触发器并启动调度器。
- Wisp - 简单库,占用空间极小,API 直观。
PDF
用于处理 PDF 文件的工具。
- OpenDataLoader PDF - 通过 Java API 和命令行将 PDF 解析为结构化的 Markdown、JSON 和 HTML。
- OpenPDF - 开源 iText 分支。(LGPL-3.0-only & MPL-2.0)
- Apache PDFBox - 用于创建和处理 PDF 的工具箱。
- iText - 以编程方式创建 PDF 文件。
- flyingsaucer - XML/XHTML 和 CSS 2.1 渲染器。(LGPL-2.1-or-later)
- JasperReports - 复杂报表引擎。
- Eclipse BIRT - 使用基于 Eclipse 的可视化编辑器创建 PDF 和其他格式(DOCX、XLSX、HTML 等)的报告引擎。
- Open HTML to PDF - 基于 flyingsaucer 和 Apache PDFBox,正确支持现代 PDF 标准。
- DynamicReports - 简化 JasperReports。
- jquick-pdf - 使用 iText 7 从类似 HTML 的模板和 ECharts 风格的图表生成 PDF,无需浏览器依赖。
- Apache FOP - 从 XSL-FO 创建 PDF。
- GraphCompose - 用于结构化业务 PDF 的声明式引擎,具有语义布局、原子分页、主题令牌和原生矢量图表。
- Nostrum Dynamic Jasper - 在 JasperReports 之上提供动态报表布局。
REST 框架
专门用于创建 RESTful 服务的框架。
- openapi-generator - 允许根据 OpenAPI 规范自动生成 API 客户端库、SDK、服务器存根、文档和配置。
- Dropwizard - 用于设置现代 Web 应用程序的固执己见的框架,基于 Jetty、Jackson、Jersey 和 Metrics。
- springdoc-openapi - 使用 Spring Boot 项目自动生成 API 文档。
- RESTEasy - 完全认证且可移植的 JAX-RS 规范实现。
- Spring HATEOAS - 独立和 Spring 支持,用于使用 HAL、HAL FORMS、Collection+JSON、ALPS 和 UBER 构建基于超媒体的 API。
- Elide - 基于 JPA 数据模型的 JSON 或 GraphQL API 的固执己见框架。
- RestExpress - JBoss Netty HTTP 栈的轻量封装,提供扩展性和性能。
- Jersey - JAX-RS 参考实现。
- Restlet Framework - 具有强大路由和过滤功能的先驱框架,并提供统一的客户端和服务器 API。
- OfficeFloor - Spring Boot 扩展,为 REST 端点添加显式函数编排,每个端点的步骤、分支和错误流都放在一个 YAML 文件中,其目录路径映射到 URL。
- hate - 根据 HAL 规范构建超媒体友好的对象。
- Spark - 受 Sinatra 启发的框架。
- Swagger Java - 用于生成、解析和服务 OpenAPI 定义的 Java 库。
数据处理
用于批处理、流、表和数据处理转换工作负载的工具。
- Apache Flink - 快速、可靠的大规模数据处理引擎。
- OpenRefine - 处理杂乱数据的工具:清理、转换、通过 Web 服务扩展数据并将其链接到数据库。
- Apache Storm - 实时计算系统。
- Tablesaw - 包含数据帧、嵌入式列存储以及数百种转换、汇总或过滤数据的方法。
- Embulk - 批量数据加载器,帮助在各种数据库、存储、文件格式和云服务之间传输数据。
- Siddhi - 云原生流处理和复杂事件处理引擎。
- easy-batch - 通过简单的处理管道设置批处理作业。记录从数据源按顺序读取,在管道中处理,并批量写入数据接收器。
- Smooks - 基于片段的消息处理框架。(Apache-2.0 OR LGPL-3.0-or-later)
- Scriptella ETL - 基于 Java 的开源 ETL 和脚本执行工具,用于在数据库、文件和其他源之间传输和转换数据。
分布式事务
分布式事务提供了一种机制,确保在并发访问和部分故障情况下数据更新的一致性。
构建
处理应用程序构建周期和依赖关系的工具。
- Bazel - 来自 Google 的工具,可快速可靠地构建代码。
- Gradle - 通过 Groovy 编程实现增量构建,而非声明 XML。与 Maven 的依赖管理配合良好。
- Jib - 无需 Docker 守护进程即可为 Java 应用程序构建优化的容器镜像。
- Apache Maven - 声明式构建和依赖管理,偏好约定优于配置。它可能比 Apache Ant 更可取,后者采用相当过程化的方法,且难以维护。
- Buck2 - 鼓励创建由代码和资源组成的小型可复用模块。
- Frontend Maven Plugin - 从 Maven 构建中安装并运行 Node.js 前端工具。
- Shadow - 用于创建和转换可执行 fat JAR 的 Gradle 插件。
- Dependency Analysis Gradle Plugin - 分析 JVM 和 Android 构建,并推荐依赖和插件更改。
- Docker Maven Plugin - 从 Maven 构建并运行 Docker 镜像。
- git-commit-id Maven Plugin - 将 Git 修订信息暴露给 Maven 构建和应用程序。
- Polyglot for Maven - Maven 3.3.1+ 的扩展,允许使用 XML 以外的方言编写 POM 模型。
- Eclipse JKube - 用于在 Kubernetes 上构建和部署 Java 应用程序的 Maven 和 Gradle 插件。
- Maven Wrapper - Maven 的 Gradle Wrapper 类似物,允许项目在没有预装 Maven 的情况下构建。
- Javadoc Publisher - 从你的 maven/gradle 项目生成 Javadoc,并自动部署到 GitHub Page。
- jar-cart - 用 Go 编写的现代、零配置的 Java 生态系统包管理器和运行器,专注于开发者生产力和构建速度。
- ReleaseRun - 针对 pom.xml 和 Gradle 项目的依赖健康检查器,扫描 CVE 和过时包。
游戏开发
支持游戏开发的框架。
- libGDX - 全能型跨平台高级框架。
- LWJGL - 抽象了 OpenGL/CL/AL 等库的健壮框架。
- FXGL - JavaFX 游戏开发框架。
- jMonkeyEngine - 面向现代 3D 开发的游戏引擎。
- JBox2D - 著名 C++ 2D 物理引擎的移植版。
- Litiengine - 基于 AWT 的轻量级 2D 游戏引擎。
- Pathetic - 高度可配置的 3D A* 寻路库,使用特定优化以实现高性能。
- vulkan4j - Vulkan、OpenGL ES2 和 GLFW 内存分配器绑定。
- input4j - 轻量级、跨平台的游戏手柄和摇杆输入处理库。
数据库
一切简化数据库交互的工具。
- Redisson - 在 Redis 服务器之上实现分布式和可扩展的数据结构。
- HikariCP - 高性能 JDBC 连接池。
- Apache ShardingSphere - 分布式 SQL 事务与查询引擎,支持在任何数据库上进行数据分片、扩展、加密等操作。
- QuestDB - 用于时间序列的高性能 SQL 数据库。支持 InfluxDB 行协议、PostgreSQL 线协议和 REST。
- Presto - 用于大数据源的分布式 SQL 查询引擎。
- Apache Doris - 用于实时分析的分布式 SQL 数据库。
- druid - 高性能、列式、分布式数据存储。
- Trino - 用于大数据的分布式 SQL 查询引擎。
- Debezium - 用于变更数据捕获的低延迟数据流平台。
- Jedis - 支持同步、异步和集群 API 的 Redis Java 客户端。
- StarRocks - 用于实时分析和数据湖仓的分布式 SQL 查询引擎。
- Realm - 可直接在手机、平板或可穿戴设备上运行的移动数据库。
- Flyway - 简单的数据库迁移工具。
- Apache Cassandra - 分布式宽列数据库,具有线性可扩展性和容错能力。
- jOOQ - 根据 SQL 模式生成类型安全的代码。
- JanusGraph - 分布式图数据库,支持可插拔的存储和索引后端。
- Lettuce - Lettuce 是一个可扩展的 Redis 客户端,用于构建非阻塞的响应式应用。
- Liquibase - 独立于数据库的库,用于跟踪、管理和应用数据库模式变更。
- Apache Calcite - 动态数据管理框架。它包含构成典型数据库管理系统的许多组件。
- MapDB - 嵌入式数据库引擎,提供基于磁盘或堆外内存的并发集合。
- Querydsl - 类型安全的统一查询。
- H2 - 小型 SQL 数据库,以其内存功能著称。
- ObjectBox - 用于 Java 和 Android 的嵌入式对象与向量数据库。
- requery - 现代、轻量但强大的对象映射和 SQL 生成器。可轻松映射或创建数据库,或从任何使用 Java 的平台执行查询和更新。
- Chronicle Map - 高效的内存(可选持久化到磁盘)堆外键值存储。
- MongoDB Java Driver - MongoDB 的官方同步、异步和响应式 Java 驱动。
- JDBI - JDBC 的便捷抽象。
- Apache Drill - 面向大数据探索的分布式、动态模式、ANSI SQL 查询引擎。
- SchemaCrawler - 从 Java、构建工具和命令行发现、记录和绘制关系数据库模式。
- ClickHouse Java - ClickHouse 的 Java 客户端和 JDBC 驱动。
- Xodus - 高并发、无模式且符合 ACID 的嵌入式事务数据库。
- ArcadeDB - 多模型数据库,支持图、文档、键值、时间序列和向量嵌入,并兼容 SQL、Cypher、Gremlin、MongoDB 和 Redis API。
- FlexyPool - 为最常见的连接池解决方案带来指标和故障转移策略。
- jetcd - etcd v3 的 Java 客户端。
- Apache Phoenix - 基于 HBase 的高性能关系数据库层,适用于低延迟应用。
- Jinq - 通过符号执行 Java 8 Lambda(基于 JPA 或 jOOQ)实现类型安全的数据库查询。
- CosId - 通用、灵活、高性能的分布式 ID 生成器。
- eXist - NoSQL 文档数据库和应用平台。
- OpenDJ - 为 Java 平台开发的 LDAPv3 兼容目录服务,提供高性能、高可用且安全的身分存储。
- JQuick SQL - 可嵌入、轻量级的分布式 SQL 引擎,支持异构联邦查询,实现跨不同系统的统一数据访问。
- Open J Proxy - 类型 3 JDBC 驱动和 Layer 7 代理服务器,用于将应用程序与关系数据库连接管理解耦。
- ArangoDB - ArangoDB Java 驱动。
- Vibur DBCP - 具有高级性能监控功能的 JDBC 连接池库。
- Spring Data JPA MongoDB Expressions - 允许使用 MongoDB 查询语言查询关系数据库。
- Spring Data Dynamic Query - Spring Data JPA、MongoDB 和 Elasticsearch 的统一动态查询接口,支持高级 JOIN、OR 逻辑、作用域条件、强大的投影和高级功能,且零样板代码。
- QueryStream - 使用类似 Stream 的 API 构建 JPA Criteria 查询。
- Actual Schema Gradle Plugin - 使用 Testcontainers 从 Liquibase 迁移生成 PostgreSQL 模式 DDL。
- MariaDB4j - 无需安装或外部依赖的 MariaDB 启动器。
- Modality - 轻量级 ORM,具有数据库逆向工程功能。
- HSQLDB - HyperSQL 100% Java 数据库。
JSON
用于在 Java 对象与 JSON 之间进行序列化和反序列化的库。
- Gson - 将对象序列化为 JSON,反之亦然。即时使用性能良好。
- Moshi - 现代 JSON 库,较少固执己见,使用内置类型如 List 和 Map。
- Jackson - 类似于 GSON,但如果需要更频繁地实例化库,则提供性能提升。
- JsonPath - 使用类似 XPATH 的语法从 JSON 中提取数据。
- Fastjson2 - 高性能 JSON 解析器、序列化器和对象映射器。
- Jolt - JSON 到 JSON 的转换工具。
- DSL-JSON - 具有高级编译时数据绑定的 JSON 库。
- jackson-modules-java8 - 一组用于 Java 8 数据类型和特性的 Jackson 模块。
- JSON-io - 将 Java 转换为 JSON/TOON 并返回。支持复杂对象图、循环引用和 TOON 格式,可节省 40-50% 的 LLM 令牌。
- JsonSurfer - 专为处理大型复杂 JSON 数据而设计的流式 JsonPath 处理器。
- Yasson - 类与 JSON 文档之间的绑定层,类似于 JAXB。
- Avaje Jsonb - 通过源代码生成实现无反射的 JSON 绑定,使用类似 Jackson 的注解。
JVM 和 JDK
当前 JVM/JDK 的实现。
- Open JDK - OpenJDK 社区主页。
- Graal - 多语言可嵌入 JVM。(GPL-2.0-only WITH Classpath-exception-2.0)
- Dragonwell8 - 针对在线电商、金融、物流应用优化的 OpenJDK 下游版本。
- OpenJ9 - 高性能、企业级、灵活许可、开放治理的跨平台 JVM,扩展并增强了来自 Eclipse OMR 和 OpenJDK 项目的运行时技术组件。
- Eclipse Temurin - 来自 Eclipse Adoptium 项目的 OpenJDK 发行版。
- SAP Machine - SAP 的免费、严格测试且经 JCK 验证的 OpenJDK 友好分支。
- Microsoft JDK - Microsoft Build of OpenJDK,免费、开源、新鲜出炉!
- Corretto - 由 Amazon 提供的免费、多平台、生产就绪的 OpenJDK 发行版。(GPL-2.0-only WITH Classpath-exception-2.0)
- Liberica JDK - 基于 OpenJDK 构建,经过全面测试并通过 JCK。(GPL-2.0-only WITH Classpath-exception-2.0)
- RedHat Open JDK - RedHat 的 OpenJDK 发行版。(GPL-2.0-only WITH Classpath-exception-2.0)
- Zulu - 适用于 Windows、Linux 和 macOS 的 OpenJDK 构建。(GPL-2.0-only WITH Classpath-exception-2.0)
代码生成器
生成重复代码模式以减少冗长和易错性的工具。
- JHipster - 用于 Spring Boot 和 AngularJS 的 Yeoman 源代码生成器。
- Lombok - 旨在减少冗余的代码生成器。
- Auto - 生成工厂、服务和值类。
- jsonschema2pojo - 从 JSON Schema 或示例 JSON 生成 Java 类型。
- J2ObjC - 用于将 Android 库移植到 iOS 的 Java 到 Objective-C 转换器。
- Immutables - 用于生成简单、安全且一致的值对象的注解处理器。
- Record-Builder - Java record 的伴生 builder 类、withers 和模板。
- Joda-Beans - 为 Java 添加可查询属性的小型框架,增强 JavaBeans。
- Geci - 发现需要生成代码的文件,自动更新并通过便捷 API 写入源码。
- Avaje HTTP - 生成 HTTP 服务器适配器和声明式客户端,并附带轻量级 JDK HTTP 客户端。
- Chocotea - 从 Java 代码生成 Postman 集合、环境和集成测试。
- Spring CRUD Generator - 用于从 YAML/JSON 规范生成 Spring Boot CRUD 应用的 Maven 插件。
- CRUDGen - 编译时注解处理器,为 Spring Boot 生成 CRUD 层、DTO、JSON Patch 和自定义 HTTP 端点。
- EasyEntityToDTO - 自动生成 DTO 和 Mapper 的注解处理器,零样板代码。
- JSpecify Package-Info Generator - Maven 插件,自动生成带有 JSpecify 注解(@NullMarked 和 @NullUnmarked)的 package-info.java 文件,帮助你在 Java 项目中管理空值边界,无需手动样板代码。
- DevOpsForge - 用于 Spring Boot Dockerfile 和 Docker Compose 配置的可视化生成器。
- Bootify - 基于浏览器的 Spring Boot 应用生成器,支持 JPA 模型和 REST API。
- JPA Buddy - IntelliJ IDEA 插件。提供可视化工具,用于生成 JPA 实体、Spring Data JPA 仓库、Liquibase changelog 和 SQL 脚本。通过比较模型与数据库自动生成 Liquibase/Flyway 脚本,并从数据库表反向工程 JPA 实体。
- SpringBoot Generator - 基于浏览器的生成器,生成 Spring Boot CRUD REST API 和可选的 Angular 或 React 前端,作为可独立部署的项目,包括 n 元关联实体。商业版提供免费层级。
- Telosys - 带有 CLI 和模型驱动模板引擎的 Java 代码生成工具包。
日志
记录应用程序行为的库。
- Kibana - 分析并可视化日志文件。部分功能需要付费。
- Logstash - 用于管理日志文件的工具。
- Graylog - 适用于扩展角色和权限管理的开源聚合器。(GPL-3.0-only)
- Apache Log4j 2 - 具有强大插件和配置架构的完全重写。
- Logback - 功能强大的日志库,通过 Groovy 提供有趣的配置选项。
- SLF4J - 抽象层/简单日志门面。
- Logbook - 可扩展的开源 HTTP 请求和响应日志库。
- Flogger - Flogger 是 Java 的流式日志 API。它支持多种特性,相比现有日志 API 有许多优势。
- tinylog - 轻量级日志框架,带有静态日志类。
- Echopraxia - 围绕结构化日志、丰富上下文和条件日志设计的 API。有 Logback 和 Log4J2 实现,但 Echopraxia 的 API 完全无依赖,意味着可以用任何日志 API 实现。
IDE
旨在简化开发多个方面的集成开发环境。
- IntelliJ IDEA - 支持多种 JVM 语言,并为 Android 开发提供了良好选项。商业版面向企业领域。
- NetBeans - 为多个 Java SE 和 EE 功能提供集成,从数据库访问到 HTML5。
- SnapCode - 运行在浏览器中的现代 Java IDE,专注于教育。
- Explyt - 面向 JetBrains IDE 的 AI 编码代理,利用 IDE 索引、重构、测试运行器、静态分析和调试功能,适用于 Java 和 Kotlin 项目。
- Eclipse Java IDE - 由 Eclipse 平台、JDT 和 PDE 组装而成的可扩展 Java IDE。
- jGRASP - 旨在提供与调试器协同工作的软件可视化,如控制结构图、UML 类图和对象查看器。
- Visual Studio Code Java - 扩展套件,为 Visual Studio Code 提供 Java 语言支持、调试、测试、Maven、Gradle 和项目管理。
ORM
处理对象持久化的 API。
- MyBatis - 将对象与存储过程或 SQL 语句耦合。
- MyBatis-Plus - MyBatis 的强大增强工具包,用于简化开发。
- Hibernate - 健壮且广泛使用,拥有活跃的社区。
- Ebean - 提供简单快速的数据访问。
- ObjectiveSql - ActiveRecord ORM,用于快速开发和约定优于配置。
- Doma - 数据库访问框架,在编译时通过注解处理以及称为双向 SQL 的原生 SQL 模板来验证和生成源代码。
- SimpleFlatMapper - 简单的数据库和 CSV 映射器。
- Permazen - 语言自然的持久化层。
- Apache Cayenne - 提供干净、静态的数据访问 API。还包括用于处理数据库映射的 GUI 建模器,以及数据库反向工程和生成。
- EclipseLink - 支持多种持久化标准:JPA、JAXB、JCA 和 SDO。
- Ekbatan - 面向事件驱动系统的现代 Java 持久化框架,具有符合人体工程学的 outbox,可在一次事务中提交状态和事件。
- Ujorm - 将行映射到 JavaBeans 或 Java records,无第三方运行时依赖,刻意省略懒加载、1:M 集合和事务管理。
- mybatis-dynamic - MyBatis 的代码优先动态 ORM,支持运行时模式修改。
编译器-编译器
帮助创建解析器、解释器或编译器的框架。
高性能
从集合到特定库,涵盖高性能计算的一切。
- Disruptor - 线程间消息传递库。
- TransmittableThreadLocal - 在线程池和异步执行中传播线程本地上下文。
- JCTools - JDK 中目前缺失的并发工具。
- Agrona - 高性能应用中常见的数据结构和实用方法。
- Eclipse Collections - 受 Smalltalk 启发的集合框架。
- fastutil - 快速且紧凑的类型特定集合。
- Hollow - 从单一生产者分发到众多消费者的高性能内存数据集。
- HPPC - 原始类型集合。
缓存
提供缓存功能的库。
- Caffeine - 高性能、近乎最优的缓存库。
- JetCache - 具有本地和分布式缓存、注解和异步 API 的 Java 缓存框架。
- Ehcache - 分布式通用缓存。
- Infinispan - 用于缓存的高并发键/值数据存储。
- cache2k - 内存中高性能缓存库。
依赖注入
有助于实现控制反转范式的库。
- Dagger - 无反射的编译时注入框架。
- Guice - 轻量级且固执己见的框架,完善了 Dagger。
- Governator - 增强 Google Guice 的扩展和工具。
- Avaje Inject - 面向微服务的编译时注入框架,无反射。
- Apache DeltaSpike - CDI 扩展框架。
- HK2 - 轻量级且动态的依赖注入框架。
- Dimension-DI - 使用 JDK Class-File API 的 JSR-330 运行时依赖注入。
代码分析
提供指标和质量测量的工具。
- Infer - 用于验证代码正确性的现代静态分析工具。
- Checkstyle - 编码约定和标准的静态分析。
- Error Prone - 将常见编程错误作为编译时错误捕获。
- PMD - 用于发现不良编码实践的源代码分析。
- NullAway - 以低构建时开销消除 NullPointerException。
- Spotbugs - 对字节码进行静态分析以发现潜在 bug。
- OpenRewrite - 通过可复用的配方自动化大规模源代码重构。
- Spoon - 用于分析和转换 Java 源代码的库。
- SonarJava - 用于 SonarQube 和 SonarLint 的静态分析器。(仅限 LGPL-3.0)
- JSpecify - 标准化的空值注解,旨在跨各种 Java IDE、编译器和静态分析工具统一工作。
- RefactorFirst - 识别并优先处理 God 类和高耦合类。
- Modernizer - 检测旧版 Java API 的使用。
- Mutability Detector - 报告给定类的实例是否不可变。
- OpenTaint - 用于 Java 和 Spring 应用程序的过程间污点分析器,带有可复用的安全规则和依赖模型。
- Error Prone Support - Error Prone 扩展:额外的 bug 检查器和大量 Refaster 模板。
- RealDiff - 通过运行现有的 Maven 或 Gradle 测试,比较 Git 修订版本之间的运行时方法参数和返回值。
- ToolsHref - 在线 Java 代码分析器和 JSON 到 Mermaid 可视化工具。
字节码操作
以编程方式操作字节码的库。
- bytecode-viewer - Java 8 Jar 和 Android APK 逆向工程套件。
- Recaf - JVM 逆向工程工具包,本质上是 Java 字节码的 IDE。
- Byte Buddy - 通过流式 API 进一步简化字节码生成。
- Javassist - 力求简化字节码编辑。
- Byteman - 通过 DSL(规则)在运行时操作字节码;主要用于测试和故障排查。(LGPL-2.1-or-later)
- Maker - 提供底层字节码生成。
- ASM - 通用、底层的字节码操作和分析。
相关 Awesome 列表
与 Java 和 JVM 生态系统相关的 Awesome 列表。
机器学习
提供用于从数据中学习的特定统计算法的工具。
- Deeplearning4j - 分布式多线程深度学习库。
- H2O - 用于大数据统计的分析引擎。
- Smile - 统计机器智能与学习引擎,提供一组机器学习算法和可视化库。
- DJL - 高层级、引擎无关的深度学习框架。
- LIBSVM - 支持向量机库,提供 Java 绑定和命令行工具。
- Apache Mahout - 专注于协同过滤、聚类和分类的可扩展算法。
- Tribuo - 提供分类、回归、聚类、模型开发工具,并与其他库(如 scikit-learn、PyTorch 和 TensorFlow)集成。
- DatumBox - 提供多种用于自然语言处理的算法和预训练模型。
- JSAT - 支持预处理、分类、回归和聚类的算法,并支持多线程执行。
- oj! Algorithms - 数据科学、机器学习和科学计算所需的高性能数学、线性代数和优化。
- Neureka - 轻量级、平台无关、OpenCL 加速的 nd-array/tensor 库。
- Intelligent java - 以编程方式无缝集成远程深度学习和语言模型。
- sklearn-java - 以纯 Java 实现 scikit-learn 风格的机器学习算法。
- Weka - 用于数据挖掘任务(从预处理到可视化)的算法集合。
代理服务器
用于路由和中介流量的 Java 代理和网关服务器。
- Zuul - 提供动态路由、监控、弹性、安全等功能的网关服务。
- Spring Cloud Gateway - 基于 Spring Framework 和 Spring Boot 构建的 API 网关。
- Membrane Service Proxy - 开源反向代理框架。
- LittleProxy - 基于 Netty 事件驱动网络库的高性能 HTTP 代理。
- OpenIG - 高性能反向代理服务器,具有专门的会话管理和凭据重放功能。
人工智能
用于构建 AI、智能体和基于知识的系统的框架。
- LangChain4j - 通过统一 API 和综合工具箱简化 LLM 集成。
- Spring AI Alibaba - 基于 Spring AI 构建的智能体 AI 框架,集成模型、工具、RAG 和工作流。
- Spring AI - 面向 Spring 的 AI 工程应用框架。
- AgentScope Java - 用于构建分布式、长时间运行的 AI 智能体的框架,支持工具执行、持久化和多智能体编排。
- MCP Java SDK - 使应用能够通过标准化接口(即 Model Context Protocol)与 AI 模型和工具交互,支持同步和异步通信模式。
- Protégé - 提供本体编辑器以及用于构建基于知识的系统的框架。
- A2A Java SDK - Agent2Agent 协议的官方 Java SDK。
- Google Gen AI Java SDK - 用于集成 Google 生成式 AI 模型的官方 Java SDK。
- simple-openai - 以最简单的方式使用 OpenAI API(及兼容 API)的库。
- liter-llm - 为跨多个提供商的统一 LLM API 客户端提供 Java 绑定。
- Dokimos - 用于 LLM 和 AI 智能体应用的评估框架,可对响应进行评分、验证工具调用和执行轨迹,并在 CI 中捕获质量回归。
- Anahata ASI - Java 智能体容器,提供本地 LLM 适配器、有状态工具执行、上下文管理和 IDE 集成。
- JamJet - 带有 Java SDK 的智能体运行时,用于构建 AI 智能体,支持基于图的工作流编排、多智能体协调以及 MCP/A2A 协议。
- ARA - 用于 AI 智能体的 Java 框架,支持工具调用、确定性输入输出契约和可配置执行策略。
- Regulus - Google ADK 插件套件,为受监管的 Java AI 智能体添加运行时合规配置文件、审计信封和 GRC 适配器。
- JADE - 用于构建和调试多智能体系统的框架和环境。(LGPL-2.0-only)
分布式应用
用于编写分布式和容错应用的库和框架。
- Apache ZooKeeper - 为大型分布式系统提供分布式配置、同步和命名注册的协调服务。
- resilience4j - 函数式容错库。
- Hazelcast - 高度可扩展的内存数据网格,提供免费开源版本。
- Failsafe - 通过重试和断路器实现简单的故障处理。
- Axon - 用于创建 CQRS 应用的框架。
- Curator Framework - Apache ZooKeeper 的高级 API。
- Apache Geode - 内存数据管理系统,提供可靠的异步事件通知和有保证的消息传递。
- JGroups - 用于可靠消息传递和集群创建的工具包。
- ScaleCube Services - 基于 SWIM 和 gossip 协议的可嵌入集群成员库。
- Dropwizard Circuit Breaker - 适用于 Dropwizard 的断路器设计模式。
- Fuse - 零运行时依赖且基于无锁 CAS 的 Java 微服务断路器。
网络爬虫
分析网站内容的库。
- webmagic - 可扩展爬虫,支持下载、URL 管理、内容提取和持久化。
- jsoup - 抓取、解析、操作和清理 HTML。
- Apache Nutch - 高度可扩展、高度可伸缩的生产环境网络爬虫。
- StormCrawler - 用于构建低延迟、可扩展网络爬虫的 SDK。
- Norconex Crawler - 模块化网络和文件系统爬虫,内置 Java API、官方 Docker 镜像和基于浏览器的配置器。
- crawlberg - 通过 Java 绑定爬取和抓取网站,支持 Markdown 转换和可选的浏览器渲染。
自然语言处理
专注于文本处理的库。
- CoreNLP - 提供一组基础工具,用于词性标注、命名实体识别和情感分析等任务。
- Apache OpenNLP - 基于机器学习的自然语言处理工具包。
- DKPro - 可复用的 NLP 工具集合,涵盖语言预处理、机器学习、词汇资源等。
- Hypherator - Java 断字库,具有迭代器式接口。开箱即用——内置多种语言的词典。
- LingPipe - 工具包,涵盖从词性标注到情感分析等任务。
文档处理
辅助处理办公文档格式的库。
- xberg - 通过 Java 绑定从 PDF、Office 文档、图像和其他格式中提取文本、表格和元数据。
- Apache Tika - 从多种文档格式中检测并提取文本和元数据。
- commonmark-java - 解析并渲染 CommonMark 兼容的 Markdown。
- docx4j - 创建和操作 Microsoft Open XML 文件。
- html-to-markdown - 通过 Java 绑定将 HTML 转换为 CommonMark 兼容的 Markdown。
- documents4j - 使用第三方转换器(如 MS Word)进行文档格式转换的 API。
- JQuick Excel - 通过声明式 XML DSL 配置 Excel 导入、导出、验证、公式和图表。
性能分析
用于性能分析、性能剖析和基准测试的工具。
- async-profiler - 用于 JVM 上 CPU、分配和锁分析的低开销采样分析器。
- JITWatch - 分析 HotSpot JVM 所做的 JIT 编译器优化。
- JMH - 用于构建、运行和分析针对 JVM 的 Java 及其他语言编写的 nano/micro/milli/macro 基准测试的工具集。
- JDK Mission Control - 面向JVM应用的Java Flight Recorder性能分析与诊断套件。
- jHiccup - 记录并报告平台 JVM 停顿。
- LatencyUtils - 用于延迟测量和报告的工具。
- Argus - 用于 jcmd、JFR、async-profiler、堆分析和机器可读健康判定的 JVM 诊断 CLI。
- JVM Hotpath - 用于行级执行频率分析以识别算法瓶颈的 Java 代理。
- Heap Seance - 内存泄漏诊断工具,将 jcmd、jmap、jstat、JFR、Eclipse MAT 和 async-profiler 编排为结构化调查工作流,并给出基于置信度的判定。
- ThreadMine Anonymizer - 本地CLI工具,将JVM线程转储中应用程序自身的包、类、方法和线程名称替换为键控令牌,保留JDK和框架帧以便转储仍可分析,之后解除分析器报告的掩码。
- fastThread - 通过免费的基于云的上传界面分析和可视化线程转储。
- GCeasy - 用于分析和可视化 GC 日志的工具,提供免费的基于云的上传界面。
- ThreadMine - 基于Web的JVM线程转储分析器,支持HotSpot、OpenJ9、Zing和GraalVM,可检测死锁、池耗尽和虚拟线程固定。提供免费层和付费计划。
原生
用于处理平台特定的原生库。
- JNA - 无需编写 JNI 即可使用原生库,同时提供常见系统库的接口。
- JavaCPP - 提供高效且便捷的原生 C++ 访问。
- JNR - 无需编写 JNI 即可使用原生库,同时提供常见系统库的接口。目标与 JNA 相同,但速度更快,并作为即将推出的 Project Panama 的基础。
- JCuda - JCuda 为 CUDA 及 CUDA 相关库提供 Java 绑定。
- native-lib-loader - 用于从 Java 中提取并加载原生库的原生库加载器。
- Aparapi - 将字节码转换为 OpenCL,从而可在 GPU 上执行。
计算机视觉
从图像和视频中获取高级信息的库。
服务器
专门用于部署应用的服务器。
- Apache Tomcat - 健壮、全能的 Servlet 和 JSP 服务器。
- Jetty - 提供 Web 服务器和 javax.servlet 容器,并支持 HTTP/2、WebSocket、OSGi、JMX、JNDI、JAAS 及许多其他集成。
- WildFly - 前身为 JBoss,由 Red Hat 开发,广泛支持 Java EE。
- Apache TomEE - Tomcat 加 Java EE。
Bean 映射
简化 Bean 映射的框架。
- MapStruct - 基于约定优于配置的方法,简化不同 Bean 类型之间映射的代码生成器。
- ModelMapper - 智能对象映射库,自动将对象相互映射。
- reMap - 基于 Lambda 和方法句柄的映射,当对象名称不同时需要代码而非注解。
- Immuto - 注解处理器,使用规范构造函数为 Java Records 生成类型安全的映射器实现,零运行时反射。
版本管理器
用于创建开发 shell 环境并在不同 Java 版本之间切换的实用工具。
地理空间
用于处理地理空间数据和算法的库。
- GraphHopper - 道路路由引擎。可用作 Java 库或独立 Web 服务。
- Open Location Code - 将地理坐标编码为简短、可共享的 Plus Codes。
- JTS - 用于操作矢量地理空间数据的几何模型和算法。
- GeoTools - 提供地理空间数据工具的库。
- Mapsforge - 基于 OpenStreetMap 数据的地图渲染。
- Spatial4j - 通用空间/地理空间库。
- Geo - Java 中的 GeoHash 工具。
- H2GIS - H2 数据库的空间扩展。
- ArcGIS Maps SDK for Java - 用于向桌面应用添加地图和 GIS 功能的 JavaFX 库。
- Apache SIS - 用于开发地理空间应用的库。
- Jgeohash - 用于使用 GeoHash 算法的库。
- IP2Location.io Java SDK - IP2Location.io地理定位API和IP2WHOIS域名WHOIS API的封装器。
科学
用于科学计算、分析和可视化的库。
- Gephi - 用于可视化和操作大型图网络的跨平台工具。
- JGraphT - 提供数学图论对象和算法的图库。
- XChart - 轻量级数据绘图库。提供多种可自定义的图表类型。
- JFreeChart - 用于 Swing、JavaFX 和服务器端应用程序的 2D 图表库。
- BioJava - 通过提供生物信息学中常用的算法、文件格式解析器、测序和 3D 可视化,促进生物数据处理。
- Chart-FX - 科学图表库,专注于性能优化的实时数据可视化,以 25 Hz 更新速率处理大型数据集。
- Orekit - 一个低层空间飞行动力学库,提供基本元素(轨道、日期、姿态、框架等)和各种算法(转换、传播、指向等)来处理它们。
- LogicNG - 用于创建、操作和求解布尔和伪布尔公式的库。
- Erdos - 模块化、轻量且易于使用的图框架,用于理论算法。
- Orson-Charts - 生成多种多样的 3D 图表,可通过 Swing 和 JavaFX 显示,或导出为 PDF、SVG、PNG 和 JPEG。
- Mines Java Toolkit - 用于地球物理科学计算、可视化和数字信号分析的库。
- jSciPy - jSciPy 是一个专为科学计算设计的 Java 库,提供受流行科学计算库启发的功能。目前提供信号处理模块,包括 Butterworth 滤波器、峰值查找算法,以及用于常微分方程的 RK4 求解器。
- DataMelt - 用于科学计算、数据分析和数据可视化的环境。(GPL-3.0-or-later)
配置
提供外部配置的库。
- config - 支持 Java properties、JSON 或其人类优化超集 HOCON 的配置库。
- owner - 减少 properties 的样板代码。
- centraldogma - 基于 Git、ZooKeeper 和 HTTP/2 的高可用版本化服务配置仓库。
- Configurate - 支持多种配置格式和转换的配置库。
- microconfig - 为微服务设计的配置系统,有助于将配置与代码分离。不同服务的配置可以具有公共和特定部分,并可动态分发。
- NightConfig - 支持 TOML、YAML、HOCON、JSON 和内存格式的配置库。
- avaje config - 加载 yaml 和 properties 文件,支持动态配置、插件、文件监视和配置事件监听器。
- Gestalt - Gestalt 为配置管理的挑战提供了全面解决方案。它允许您从多个输入源获取配置数据,智能合并,并以结构化、类型安全的方式呈现。
- KAConf - 基于注解的 Java 和 Kotlin 配置系统。
- dotenv - 使用环境特定文件的十二要素配置库。
- Externalized Properties - 简单、轻量但功能强大的配置库,支持从文件、数据库、Git 仓库等外部源以及任何自定义源解析属性,并具有可扩展的后处理/转换机制。
- ClearConfig - 类型安全、可组合的配置库,注重运行时清晰度。
- sealed-env - 使用共享的 Node.js 和 Java/Spring Boot 格式加密环境文件,并可选 TOTP 解封。
- ini4j - 提供处理 Windows INI 文件的 API。
电子表格
用于读取、写入和生成电子表格文件的库。
- Apache Fesod - 内存高效的库,用于读写大型电子表格文件。
- Apache POI - 支持 OOXML(XLSX、DOCX、PPTX)以及 OLE2(XLS、DOC 或 PPT)。
- fastexcel - 高性能库,用于读写大型 Excel(XLSX)工作表。
- Jxls - 从电子表格模板生成 Excel 报告。
- zerocell - 基于注解的 API,将 Excel 表中的数据读取到 POJO,注重降低开销。
- Sheetz - 读写 Excel、CSV 和 ODS 文件,支持注解映射、流式处理、样式和验证。
- jackson-dataformat-spreadsheet - Jackson 数据格式模块,通过
ObjectMapper将 Excel(XLSX/XLS)读写为 POJO。
代码格式化
对 Java 源代码进行格式化或重构的工具。
- google-java-format - 将 Java 源代码重新格式化为遵循 Google Java Style。
- Spotless - 适用于 Gradle 和 Maven 的多功能代码格式化器,在 Java 和其他语言中强制执行多种风格(包括 Google 和 Palantir)。
- Palantir Java Format - 基于 google-java-format 的格式化器,支持更宽的行宽和更友好的 lambda 输出。
- JHarmonizer - 使用可配置规则和 Palantir Java Format 安全地重排 Java 源代码。
函数式编程
促进函数式编程的库。
- Vavr - 提供持久数据类型和函数式控制结构的函数式组件库。
- StreamEx - 增强 Java 8 Streams。
- jOOλ - Java 8 的扩展,通过提供大量缺失类型和丰富的顺序 Stream API 补充,旨在弥补 lambda 的不足。
- Functional Java - 实现了许多基础和高级编程抽象,有助于面向组合的开发。
- Parallel Collectors - 用于并行处理的 Stream API Collectors,支持自定义线程池,专为 I/O 密集型工作负载设计。
- protonpack - 流工具集合。
- Packrat - Java Stream API 的 Gatherers 库。Gatherers 可以用自定义中间操作增强流。
- Fugue - Guava 的函数式扩展。
机器人开发
用于构建聊天机器人和消息平台机器人的库和框架。
- TelegramBots - 用于通过 Telegram Bot API 构建机器人的 Java 库。
- JDA - Discord REST API 及其 WebSocket 事件的封装。
- JBot - 用于构建聊天机器人的框架。
- Nyagram - 基于 Spring Boot 3 和 Java 21 的响应式、类型安全的 Telegram 机器人框架。
CLI
与 CLI 相关的所有库。
- picocli - 在用法帮助中支持 ANSI 颜色和样式,基于注解的 POSIX/GNU/任意语法,子命令,选项和位置参数均强类型。
- Lanterna - 易用的控制台文本 GUI 库,类似于 curses。
- JCommander - 命令行参数解析框架,通过实现接口支持自定义类型和验证。
- JLine - 包含现代 shell 的功能,如补全和历史记录。
- Jansi - 用于格式化控制台输出的 ANSI 转义序列。
- Airline - 基于注解的框架,用于解析类似 Git 的命令行参数。
- jbock - 无反射的命令行解析器。
- AliveJTUI - 声明式、React 风格的 TUI 库,用于将终端 UI 构建为组件树,支持基于 diff 的渲染、焦点管理和主题。
- Jexer - 高级控制台(和 Swing)文本用户界面(TUI)库,支持鼠标拖拽窗口、内置终端窗口管理器和 sixel 图像支持。外观类似 Turbo Vision。
去中心化
处理去中心化任务的库。
代码覆盖率
支持测试套件收集代码覆盖率指标的框架和工具。
- JaCoCo - 支持通过离线和运行时字节码插桩收集代码覆盖率指标的框架。
- Supercov - 测量 Java 和 Kotlin 测试运行的行、分支和 MC/DC 覆盖率,并对源文件进行代码质量评分。
- OpenClover - 通过源码插桩测量 Java 代码覆盖率,并集成构建工具和 IDE。
- Delta Coverage - 基于提供的 diff 计算新增和修改代码的覆盖率,支持 JaCoCo 和 IntelliJ 覆盖率引擎。
GUI
用于创建现代图形用户界面的库。
- FlatLaf - 采用 Darcula 和 IntelliJ 主题的现代 Swing 外观。
- JavaFX - Swing 的继任者。
- ControlsFX - 补充 JavaFX 的 UI 控件和组件。
- Scene Builder - JavaFX 应用的视觉布局工具。
- SnapKit - 适用于桌面和 Web 的现代 Java UI 库。
- SWT - 图形控件工具包。
- Sierra - 用于快速开发 Swing 应用的轻量级声明式 DSL。
金融
与金融领域相关的库。
- XChange - 用于跨加密货币交易所的市场数据和交易的一致 Java API。
- ta4j - 技术分析库。
- Stripe - 与 Stripe API 的集成。
- OpenGamma Strata - 金融产品的分析和市场风险库。
- Joda-Money - JDK 未提供的基础货币和金额类及算法。
- Cassandre - 交易机器人框架。
- Philadelphia - 低延迟金融信息交换。
- Wickra - 基于原生 Rust 核心的技术分析库,提供 514 个流式 O(1) 每 tick 指标,发布在 Maven Central 上,坐标为 org.wickra:wickra;比纯 Java 的 ta4j 拥有更多指标和增量更新。
- iban-commons - 零依赖的 IBAN 和 BIC 工具包,提供无分配验证以及 127 个国家的解析和格式化。
- nablatensor - 用于量化金融的伴随自动微分;记录一次估值,然后重放磁带以在一次反向扫描中获取价格和所有希腊字母,支持 CPU、SIMD 或 GPU。
- PesaFlow4J - 无依赖的 Kenya PesaFlow/eCitizen PaymentAPI SDK,包括 M-Pesa STK 推送和 webhook 签名验证。
云
用于集成或使用云特定功能的库。
- Kubernetes Java Client - Kubernetes API 的官方 Java 客户端。
- kubernetes-client - 客户端通过流畅的 DSL 提供对完整 Kubernetes 和 OpenShift REST API 的访问。
- AWS SDK for Java 2.x - 用于与 Amazon Web Services 交互的官方 Java API。
- Google Cloud Client Libraries - 用于从 Java 应用程序访问 Google Cloud 服务的客户端库。
- minio-java - 提供简单 API 以访问任何兼容 Amazon S3 的对象存储服务器。
- Java Operator SDK - 用于在 Java 中实现 Kubernetes 操作符的 SDK。
数据结构
高效且特定的数据结构。
- RoaringBitmap - 快速高效的压缩位图。
- Persistent Collection - Java 集合框架的持久化且不可变的对应实现。
- HashSmith - 使用 SwissTable 风格 SWAR/SIMD 控制字节探测的哈希映射和集合实现,针对内存效率进行了优化。
- CQEngine Next - 提供对 Java 集合的索引化、类 SQL 查询。
- Wormhole4j - 基于 Wormhole 索引结构的高性能有序映射,支持快速范围扫描和线程安全并发访问。
架构
帮助实现和验证设计与架构概念的框架和库。
- ArchUnit - 用于指定和断言架构规则的测试库。
- jMolecules - 用于在代码中表达设计和架构概念的注解与接口。
- jQAssistant - 基于 Neo4J 查询语言的静态代码分析。
- Taikai - ArchUnit 扩展,为常见 Java 技术提供预定义的架构规则。
- WireDoctor - Spring Boot 应用的运行时诊断工具,可检测循环 Bean 依赖和慢 Bean,并支持 CI 回归门禁。
内省
帮助更简单、更快速地使用 Java 内省和反射 API 的库。
- ClassGraph - ClassGraph(原 FastClasspathScanner)是一个超快、超轻量、并行化的类路径扫描器和模块扫描器,适用于 Java、Scala、Kotlin 及其他 JVM 语言。
- jOOR - jOOR 代表 jOOR 面向对象反射。它是 java.lang.reflect 包的简单封装。
- ReflectASM - ReflectASM 是一个非常小的 Java 库,通过代码生成提供高性能反射。
- Objenesis - 允许在没有默认构造函数的情况下进行动态实例化,例如具有必需参数、副作用或抛出异常的构造函数。
- TypeTools - 用于解析泛型类型的工具。
模板引擎
在模板中替换表达式的工具。
- Thymeleaf - 旨在替代 JSP,适用于 XML 文件。
- Handlebars.java - 无逻辑且语义化的 Mustache 模板。
- Pebble - 受 Twig 启发,以其继承特性和易读语法脱颖而出。内置自动转义以保障安全,并集成国际化支持。
- jte - 编译为类,语法简单,提供多种功能以简化开发,执行快速且占用空间小。
- Freemarker - 基于模板和变化数据生成文本输出(HTML 网页、电子邮件、配置文件、源代码等)的库。
- StringTemplate - 用于生成源代码、网页、电子邮件或任何其他格式化文本输出的模板引擎。
- Rocker - 优化、内存高效且快速的模板引擎,生成静态类型的普通对象。
- jstachio - 类型安全的 Mustache 模板引擎。
- Jamal - 嵌入 Maven/JavaDoc 的可扩展模板引擎,支持多种扩展(Groovy、Ruby、JavaScript、JShell、PlantUml),并支持代码片段处理。
分发
以原生格式处理应用分发的工具。
- Nexus - 具有代理和缓存功能的二进制管理。
- packr - 将 JAR、资源和 JVM 打包,用于 Windows、Linux 和 macOS 的原生分发。
- JavaPackager - Maven 和 Gradle 插件,提供将 Java 应用打包为 Windows、macOS 或 GNU/Linux 原生可执行文件并生成安装程序的简便方法。
- Artipie - 将二进制构件托管在文件系统或 S3 上的构件管理工具。
- Getdown - 将 Java 应用部署到最终用户计算机并保持更新的系统。作为 Java Web Start 的替代方案开发。
- jDeploy - 将桌面应用部署为原生 Mac、Windows 或 Linux 捆绑包。
- IzPack - 用于跨平台部署的安装程序制作工具。
- Nuts - 从 Maven 仓库安装并运行 Java 应用,复用描述符并预置所需的 JDK。
- really-executable-jars-maven-plugin - 用于制作自执行 JAR 的 Maven 插件。
- jlink.online - 通过 HTTP 构建优化的运行时。
- Boxfuse - 使用不可变基础设施原则将 JVM 应用部署到 AWS。
- Central Repository - 最大的二进制组件仓库,作为免费服务提供给开源社区。Apache Maven 默认使用,并可用于所有其他构建工具。
- Cloudsmith - 完全托管的包管理 SaaS,支持 Maven/Gradle/SBT,并提供免费套餐。
正则表达式
用于构建和评估正则表达式的库和引擎。
- JavaVerbalExpressions - 帮助构建复杂正则表达式的库。
- RE2/J - RE2 的 Java 移植版,提供线性时间正则表达式匹配。
- Sift - 类型安全、基于 AST 的正则表达式构建器,专注于可读性和 ReDoS 防护。
- dregex - 使用确定性有限自动机的正则表达式引擎。它支持一些 Perl 风格特性,同时保持线性匹配时间,并提供集合操作。
移动开发
用于创建或管理移动应用的工具。
- Codename One - 用于原生移动、桌面、Web 和手表应用的跨平台 Java 框架。(GPL-2.0-only WITH Classpath-exception-2.0)
- Multi-OS Engine - 开源跨平台引擎,用于开发原生移动(iOS、Android 等)应用。
- Gluon Substrate - 为桌面、移动和嵌入式目标构建原生 JavaFX 应用。
- MobileUI - 使用 Java 和 Kotlin 开发具有原生 UI 的移动应用的跨平台框架。
脚本
用于将 Java 或类 Java 语言作为脚本使用的工具和运行时。
- JBang - JBang 让 Java 脚本编写变得简单。它允许使用单个文件进行代码和依赖管理,并可直接运行。
- JQuick Java - 类 Java 脚本语言,用于动态规则引擎,支持 XML 编排和 Java 互操作。
- JPad - 代码片段运行器。
约束满足问题求解器
帮助实现优化和可满足性问题的库。
特性开关
用于评估和管理特性开关的库和 SDK。
- FF4J - Java 特性开关。
- Togglz - 特性切换模式的实现。
- Unleash Java SDK - 用于 Unleash 特性管理平台的 Java 客户端 SDK。
- OpenFeature Java SDK - 用于在 Java 应用中评估功能开关的厂商中立 API。
- Rollgate Java SDK - 用于评估 Rollgate 特性开关并支持实时配置更新的 Java SDK。
- Featureflip Java SDK - Featureflip 托管平台的 Java SDK,通过流式规则集在本地评估开关,并提供 OpenFeature 提供程序。
形式化验证
形式化方法工具:证明助手、模型检查、符号执行等。
- Checker Framework - 可插拔类型系统。包括空值类型、物理单位、不可变类型等。(GPL-2.0-only WITH Classpath-exception-2.0)
- Java Path Finder (JPF) - JVM 形式化验证工具,包含模型检查器等。由 NASA 创建。
- Daikon - 检测可能的程序不变量,并基于这些不变量生成 JML 规范。
- OpenJML - 将 JML 规范转换为 SMT-LIB 格式,并将程序隐含的证明问题传递给后端求解器。(GPL-2.0-only)
- KeY - 形式化软件开发工具,旨在尽可能无缝地集成面向对象软件的设计、实现、形式化规范和形式化验证。使用 JML 进行规范,使用符号执行进行验证。(GPL-2.0-or-later)
- JMLOK 2.0 - 通过反馈导向的随机测试生成,检测代码与 JML 规范之间的不一致,并为每个检测到的违规行为建议可能的原因。(GPL-3.0-only)
进程
帮助管理操作系统进程的库。
- zt-exec - 为 Apache Commons Exec 和 ProcessBuilder 提供统一 API。
- zt-process-killer - 通过 PID 停止从 Java 启动的进程或系统进程。
- ch.vorburger.exec - Apache Commons Exec 的便捷 API。
日期与时间
与日期和时间处理相关的库。
- iCal4j - 解析和构建 iCalendar RFC 5545 数据模型。
- Time4J - 高级日期和时间库。
- ThreeTen-Extra - 补充 JDK 8 中日期时间类的附加类。
- Jollyday - 确定给定年份、国家/名称以及可能的州/地区的节假日。
API 兼容性
用于跟踪 API 演进并检测库版本之间破坏性变更的工具。
CSV
简化 CSV 数据读写的框架和库。
- FastCSV - 性能优化、无依赖且符合 RFC 4180。
- jackson-dataformat-csv - 用于读写 CSV 的 Jackson 扩展。
- opencsv - 简单的 CSV 解析器。
平面文件
用于读写定长和分隔平面文件的框架和库。
- BeanIO - 使用 XML 或注解配置,将定长或分隔记录的平面文件与 Java Bean 相互映射。
- Flatpack - 解析和写入分隔及定长平面文件,支持可选的列映射定义。
- fixedformat4j - 基于注解的定宽平面文件与 POJO 和 Java record 之间的映射。
PaaS
Java 平台即服务。
- AWS Elastic Beanstalk - 基于 AWS,支持 Tomcat 和 Jetty。
- AWS Lambda - 无服务器计算。
- Google Cloud - Google 的云基础设施。
- Heroku - 抽象计算环境。
- Microsoft Azure - Microsoft 的云基础设施。
- OpenShift - 另外提供本地部署解决方案。
有影响力的书籍
产生重大影响且仍值得阅读的书籍。
播客与录屏
编程时可以观看或收听的内容。
- 140 Second Ducklings - Twitter 上深入讲解 Java 调试的短视频。
- A Bootiful Podcast
- Foojay Podcast
- Inside Java - 官方播客。
- Java Off Heap
人物
值得关注的活跃账号。描述来自其社交媒体。
- Adam Bien - 自由作者、JavaOne Rockstar 演讲者、顾问、Java Champion。
- Aleksey Shipilëv - 性能极客、基准测试沙皇、并发 bug 猎手。
- Antonio Goncalves - Java Champion、JUG Leader、Devoxx France、Java EE 6/7、JCP、作者。
- Arun Gupta - Java Champion、JavaOne Rockstar、JUG Leader、Devoxx4Kids-er、Couchbase 开发者倡导副总裁。
- Brian Goetz - Oracle 的 Java 语言架构师。
- Bruno Borges - Oracle 的产品经理/Java 爱好者。
- Chris Engelbert - 开源爱好者、演讲者、开发者,TimescaleDB 开发者倡导者。
- Chris Richardson - 软件架构师、顾问和连续创业者,Java Champion,JavaOne Rock Star,《POJOs in Action》作者。
- Ed Burns - Oracle 技术顾问委员会成员。
- Eugen Paraschiv - Spring Security 课程作者。
- Heinz Kabutz - Java Champion、演讲者、《The Java Specialists' Newsletter》作者,并发性能专家。
- Holly Cummins - IBM 伦敦 Bluemix Garage 技术负责人,Java Champion、开发者、作者,JavaOne rockstar。
- James Weaver - Java/JavaFX/IoT 开发者、作者和演讲者。
- Java - Java 官方 Twitter 账号。
- Javin Paul - 知名 Java 博主。
- Josh Long - Pivotal Spring 倡导者,O'Reilly《Cloud Native Java》和《Building Microservices with Spring Boot》作者,JavaOne Rock Star。
- Lukas Eder - Java Champion、演讲者,Data Geekery(jOOQ)创始人兼 CEO。
- Mani Sarkar - Java Champion、多语言开发者、软件工匠,参与 @graalvm、AI/ML/DL、数据科学、开发者社区,演讲者与博主。创建了多个类似本列表的优秀列表。
- Mario Fusco - RedHatter、JUG 协调员、常任演讲者和作者。
- Mark Heckler - Pivotal 首席技术专家和开发者倡导者、会议演讲者、出版作者、Java Champion,专注于物联网和云计算。
- Markus Eisele - Java EE 布道师,Red Hat。
- Martijn Verburg - 伦敦 JUG 联合负责人、演讲者、作者、Java Champion 等。
- Martin Thompson - 面色苍白的性能专家。
- Monica Beckwith - 性能顾问,JavaOne Rock Star。
- OpenJDK - OpenJDK 官方账号。
- Peter Lawrey - Peter Lawrey,Java 性能专家。
- Randy Shoup - Stitch Fix 工程副总裁,演讲者,JavaOne Rock Star。
- Reza Rahman - Java EE/GlassFish/WebLogic 布道师、作者、演讲者、开源黑客。
- Sander Mak - Java Champion、作者。
- Simon Maple - Java Champion、VirtualJUG 创始人、LJC 负责人、RebelLabs 作者。
- Spencer Gibb - 软件工程师、父亲、极客,@pivotal 的 Spring Cloud Core 联合创始人兼负责人。
- Stephen Colebourne - Java Champion、演讲者。
- Trisha Gee - Java Champion 和演讲者。
- Venkat Subramaniam - 作者、休斯顿大学教授、微软 MVP 奖获得者、JavaOne 摇滚明星、Java Champion。
- Vlad Mihalcea - Java Champion,从事 Hypersistence Optimizer 工作,数据库爱好者,《High-Performance Java Persistence》作者。