Actualización del 07/10/2020: esta lista se creó hace casi 10 años. La nueva lista está disponible aquí.
Este artículo resume las bibliotecas de Java más populares y ampliamente utilizadas para una variedad de aplicaciones diferentes.
1. Núcleo
- Apache Commons Lang: biblioteca de Apache que proporciona una gran cantidad de utilidades de ayuda para la API java.lang, como manipulación de cadenas, creación de objetos, etc.
- Google Guava: biblioteca principal de Google para colecciones, almacenamiento en caché, compatibilidad con primitivas, etc. (ejemplo)
2. HTML, analizador XML
- Jsoup: una biblioteca conveniente para manipular HTML. (ejemplo)
- STaX: código XML de proceso. (ejemplo)
3. Marcos web
- Spring: un marco de aplicación de código abierto y un contenedor de inversión de control para la plataforma Java. (ejemplo)
- Struts 2: el marco web más popular de Apache. (ejemplo)
- Google Web Toolkit: un juego de herramientas de desarrollo de Google para crear y optimizar aplicaciones complejas basadas en navegador. (ejemplo)
- Strips: un marco de presentación para crear aplicaciones web utilizando las últimas tecnologías Java.
- Tapiz: marco orientado a componentes para crear aplicaciones web dinámicas, robustas y altamente escalables en Java.
Aquí hay una comparación de esos marcos.
4. Cuadro, informe, gráfico
- JFreeChart: crea gráficos como gráficos de barras, gráficos de líneas, gráficos circulares, etc.
- JFreeReport: crea informes en PDF.
- JGraphT: crea un gráfico que contiene un conjunto de nodos conectados por bordes.
5. Bibliotecas de ventanas
- Swing: una biblioteca GUI de SDK. (ejemplo)
- SWT: una biblioteca GUI de eclipse.
SWT frente a swing
6. Marcos de GUI
- Eclipse RCP. (ejemplo)
7. Procesamiento del lenguaje natural
- OpenNLP: una biblioteca de Apache. (ejemplo)
- Stanford Parser: una biblioteca de la Universidad de Stanford. (ejemplo)
Si eres un experto en PNL, aquí tienes más herramientas.
8. Análisis estático
- Eclipse JDT: una biblioteca de IBM que puede manipular el código fuente de Java. (ejemplo)
- WALA: una biblioteca que puede procesar archivos .jar, es decir, código de bytes. (ejemplo)
9. JSON
- Jackson: una biblioteca Java multipropósito para procesar el formato de datos JSON. Jackson tiene como objetivo ser la mejor combinación posible de rapidez, corrección, ligereza y ergonomía para los desarrolladores.
- XStream: una biblioteca simple para serializar objetos a XML y viceversa.
- Google Gson: una biblioteca de Java que se puede utilizar para convertir objetos Java en su representación JSON. (ejemplo)
- JSON-lib: una biblioteca de Java para transformar beans, mapas, colecciones, matrices de Java y XML a JSON y de nuevo a beans y DynaBeans.
10. Matemáticas
- Apache Commons Math: proporciona funciones para matemáticas y estadísticas.
11. Registro
- Apache Log4j: la biblioteca de registro más popular. (ejemplo)
- Logback: sucesor del popular proyecto log4j.
La fachada de registro simple para Java (SLF4J): una fachada o abstracción simple para varios marcos de registro (por ejemplo, java.util.logging, logback, log4j) que permite al usuario final conectar el marco de registro deseado en el momento de la implementación.
12. Complicante de oficina
- Apache POI: API para manipular varios formatos de archivo basados en el formato de documento compuesto OLE 2 de Microsoft utilizando Java puro.
- Docx4j: una biblioteca de Java para crear y manipular archivos Microsoft Open XML (Word docx, Powerpoint pptx y Excel xlsx).
— Más de comentarios —
13. Fecha y hora
- Joda-Time: un reemplazo de calidad para las clases de fecha y hora de Java.
14. Base de datos
- Hibernar / EclipseLink / JPA
- JDO
- jooq
- SpringJDBC / Spring Data
- Apache DbUtils
Herramientas de desarrollo
- Lombok: una biblioteca de Java destinada a simplificar el desarrollo de la escritura de código Java
* 1) La lista anterior se basa en mi propia encuesta combinada con mi experiencia personal. Es posible que no sean precisamente LOS MÁS populares, pero al menos los más conocidos.
* 2) Seguiré actualizando esta lista para que sea más completa y precisa. Gracias por tus comentarios.