Many open source libraries/frameworks exist for Java that can make coding certain tasks significantly easier, but finding these libraries/frameworks can be a different matter entirely! This article is devoted to compiling some of the more common useful Java libraries and some of the lesser known libraries.
Apache Commons: .................. http://commons.apache.org/ Huge collection of useful components to help manage 'common' coding tasks. Commons.Lang and Commons.IO are extremely.
Google Collections/Guava: ..... http://code.google.com/p/guava-libraries/ Google's collections API and many other useful core libraries that help to extend the core Java libraries.
JUnit: ........................................... http://www.junit.org/ A good xUnit test framework for Java.
Hibernate: ................................... http://www.hibernate.org/ Helps facilitate the storage and retrieval Java domain objects through Object/Relational mappings.
Joda-Time: ................................ http://joda-time.sourceforge.net/ Makes dealing with date and time calculations and objects significantly easier.
Spring: ........................................ http://www.springframework.org/ Provides extra functionality for everyday applications but mainly used in the creation and management of web applications.
Lucene: ...................................... http://lucene.apache.org/java/docs/ "...is a high-performance, full-featured text search engine library written entirely in Java."
JFreeCharts: ............................. http://www.jfree.org/jfreechart/ Considered one of the top charting/graph libraries for Java.
iText: ........................................... http://www.lowagie.com/iText/ PDF creations and manipulation.
Log4J: ......................................... http://logging.apache.org/log4j/1.2/index.html A good library devoted to logging.
XStream:..................................... http://xstream.codehaus.org/ "Out of the box POJO serialization to XML and back again" - Pyrolistical
SWT:............................................. http://www.eclipse.org/swt/ Libraries for creating extensive UIs in Java.
SwingLabs: ............................... https://swingx.dev.java.net/ A library for extending the functionality provided by Java's Swing component.
Jetty: ........................................... http://www.mortbay.org/jetty/ "Easy-to-use, full-featured, embeddable web server and webapp container" - David Crow
JDOM: .......................................... http://www.jdom.org/ XML and DOM manipulation for Java.
Selenium: ................................... http://seleniumhq.org/ Write tests in JUnit style, then run automated tests against them in Firefox.
JAI: ............................................... http://java.sun.com/javase/technologies/desktop/media/jai/ "... provides a set of object-oriented interfaces that supports a simple, high-level programming model which allows images to be manipulated easily in Java applications and applets. JAI goes beyond the functionality of traditional imaging APIs to provide a high-performance, platform-independent, extensible image processing framework."
Velocity: ...................................... http://velocity.apache.org/index.html Create text (SQL Queries, HTML, etcetera) from predefined templates.
jXLS: ............................................. http://jxls.sourceforge.net/ Create XML files from templates.
Google Web Toolkit (GWT): ..... http://code.google.com/webtoolkit/ Code in Java, then compile to JavaScript. Useful for creating good looking AJAX web applications.
Processing: ................................ http://www.processing.org/ A powerful graphics and multimedia for Java. Has also been ported over as a JavaScript version.
DOM4J: ......................................... http://www.dom4j.org/ XML/Xpath/XSLT processing for Java.




