写在前面

  1. 本文列出的名单基于作者调查及个人经验。它们未必是绝对最流行的,但至少是众所周知的。
  2. 我会不断更新这个列表,使之更加完整和准确。感谢您的意见。

一个典型的 Java 项目往往依赖于第三方库。本文总结的 Java 库适用于各种应用场景,较为流行且广泛使用。其中部分库提供了简单的示例(源自 ProgramCreek)。

Java SDK 肯定是使用最广的库,所以本文的名单焦点是流行的第三方库。该列表可能并不完善,所以如果你觉得有什么应该出现在列表中的,请留下您的评论。非常感谢!

1. 核心库

  • Apache Commons Lang:来自 Apache 的核心库,为 java.lang API 补充了许多常用的工具类,如字符串操作、对象的创建等。
  • Google Guava:来自谷歌的核心库,包括集合(Collection)、缓存(Caching)、支持原语(Primitives)等功能。(示例)

2. HTML、XML 解析

3. Web 框架

  • Spring:Java 平台上众所周知的开源框架和依赖注入(Dependency Injection)容器。(示例)
  • Struts2:来自 Apache 的流行 Web 框架。(示例)
  • Google Web Toolkit (GWT):Google 提供的开发工具库,主要用于构建和优化复杂的 Web 程序。(示例)
  • Stripes:使用最新 Java 技术构建的 Web 程序框架,推荐使用。(注:原文为 Strips,推测为 Stripes 框架)
  • Tapestry:面向组件的框架,用于使用 Java 创建动态、健壮、扩展性高的 Web 应用程序。

请猛击 这里 查看以上框架之间的比较。

4. 图表、报表、图像

  • JFreeChart:用于创建如条形图、折线图、饼图等图表。
  • JFreeReport:创建于输出 PDF 格式的报表。
  • JGraphT:创建图像,其中只包含由线段连接的点集(图论库)。

5. 窗口工具包

SWT 与 Swing 的比较

6. GUI 框架

  • Eclipse RCP:基于 Eclipse 平台的富客户端框架。(示例)

7. 自然语言处理 (NLP)

  • OpenNLP:来自 Apache 的自然语言处理库。(示例)
  • Stanford Parser:斯坦福大学提供的自然语言处理库。(示例)

如果你是一名 NLP 专家,请猛击 这里 查看更多工具库介绍。

8. 静态分析

  • Eclipse JDT:由 IBM 提供的静态分析库,可以操作 Java 源代码。(示例)
  • WALA:可以处理 jar 包文件(即字节码)的工具库。(示例)

9. 数据序列化 (JSON/XML)

  • Jackson:用于处理 JSON 数据格式的多用途 Java 库。Jackson 旨在快速、准确、轻量、对开发人员友好之间找到最好的平衡点。
  • XStream:一个简单用于对象和 XML 互相转换的库。
  • Google Gson:一个专门用于 Java 对象和 JSON 对象相互转换的工具库。(示例)
  • JSON-lib:用于 Beans、Maps、Collections、Java 数组、XML 和 JSON 之间相互转换操作的工具库。

10. 数学计算

  • Apache Commons Math:提供数学计算和数值统计需函数的工具库。

11. 日志

  • Apache Log4j:风行一时的日志记录操作库。(示例)
  • Logback:当前流行的 Log4j 项目的继任者。
  • SLF4J (The Simple Logging Facade for Java):各种日志框架的一个简单的外观或抽象(如 java.util.logging、Logback、Log4j 等),允许用户在部署时加入需要的日志框架。

12. Office 文档处理

  • Apache POI:利用其提供的 APIs,可以使用纯 Java 代码操作各种基于微软 OLE2 合成文档格式的文档。
  • Docx4j:一个用于创建、操作微软公开的 XML 文件的库(支持 Word docx、Powerpoint pptx 和 Excel xlsx)。

13. 日期和时间

  • Joda-Time:如有质量问题包退包换的 Java 日期和时间类。(注:Java 8 后推荐使用 java.time

14. 数据库

  • Hibernate、EclipseLink、JPA
  • JDO
  • jOOQ
  • Spring JDBC、Spring Data
  • Apache DbUtils

15. 开发工具

  • Lombok:旨在减少代码编写的 Java 开发库。(注:原文为 Lambok,已修正)

原文链接:programcreek

说明

本文部分库(如 Struts2、JFreeReport、Joda-Time 等)随着 Java 版本演进(特别是 Java 8+)及生态变化,可能存在维护状态变更或被新技术替代的情况(例如 Java 8 引入了新的日期时间 API,Log4j 2 已取代 Log4j 1.x 等)。建议在实际项目中查阅各库的最新官方文档以确认适用版本。