Build Systems
Cache Solutions
Charting & Reporting
Chat Servers
Code Analyzers
Code Beautifiers
Code Coverage
Connection Pools
EJB Servers
Expression Languages
Forum Soft
General Purpose
HTML Parsers
Inversion of Control
Issue Tracking
J2EE Frameworks
JSP Tag Libraries
Job Schedulers
Logging Tools
Mail Clients
Network Clients
Network Servers
PDF Libraries
Parser Generators
RSS & RDF Tools
Rule Engines
SQL Clients
Scripting Languages
Search Engines
Source Control
Template Engines
Testing Tools
Text Processing
UML & Modeling
Web Frameworks
Web Mail
Web Servers
Web Services
Web Testing
Wiki Engines
XML Parsers
XML UI Toolkits

Open Source General Purpose Libraries in Java

J.A.D.E. Java Addition to Default Environment

The JADE library provides \"Context Programming\" which allows: - Objects to be allocated on the \"stack\" to avoid garbage collection and provide faster execution speed (PoolContext). - Automatic concurrency in low level method to take advantage of multi-processors (or hyper-threading) in a transparent manner (ConcurrentContext). - Thread-based inheritable local/global settings (LocalContext). This library also provides - Struct/Union classes for interoperability with C/C++. - A math package with the first (and unique) generic Matrix class to solve linear systems of any kind. - Physical quantities for which the dimension checking is done in the form of class-type checking (e.g. the division of a length by a duration returns a velocity instance). - Real-time XML parser with no dynamic object creation (the world fastest by a factor 2-3x) And much, much more...

Go To J.A.D.E. Java Addition to Default Environment

jga: Generic Algorithms for Java

he goal of this project is to provide functionality roughly analogous to the portions of the C++ STL library that are not already provided by java. The primary functionality to be provided is: * a set of functors and predicates that may be applied both the the generic collections and to other areas of the standard java library. * basic utility algorithms for use with java collections such as those found in STL * implementations of standard java classes that are intended to be user-derivable that apply the algorithms and functors for general benefit (for example, implementations of standard swing models that take advantage of predicates and functors) We will not necessarily reproduce STL in all of its details: where Java and C++ provide different interpretations of standard design patterns, we will stay true to standard Java practices in order to be as comfortable for Java programmers to adopt as is practical. We will also not necessarily be limited by the scope or approach of STL

Go To jga: Generic Algorithms for Java

Ostermiller Utils

Libraries for common tasks such as CSV, Base64, Circular Buffers, MD5, and Significant Figures.

Go To Ostermiller Utils


Jodd is a generic purpose open-source Java library. It helps in development of Java applications, both stand-alone and server-side. You may think of Jodd as swiss army knife for Java: small, sharp and with plenty handy gadgets included. Jodd contains many useful and ready to use features: it provides Java beans manipulation, loads beans with ease from various sources, simplifies JDBC connectivity and code, profiles sql queries, manages date and time, manipulates and format Strings, searches files on disk, helps with handling servlet requests. Additionally, Jodd contains small, yet useful mvc2 JSP-based framework. And there is more inside...

Go To Jodd

Kataba Dynamics

Set of core libraries for Java, inspired by dynamic languages like Ruby and Python.

Go To Kataba Dynamics


The Protomatter Classes is a collection of (hopefully) useful Open Source Java classes. The package provides the following: Syslog A robust logging system. JDBC Connection Pool A JDBC driver that maintains a pool of connections. PAS A lightweight application server framework. (JavaDoc) Object Pooling Framework A generic object pooling framework. These baseclasses are used to implement the JDBC connection pool, thread queues, mutex locks, etc. Misc Utility Classes Base64 encoder/decoder, blocking queues, work queues, mutex locks, and other stuff...

Go To Protomatter

JFig - Java Configuration Solution

Java applications are typically deployed in multiple environments and platforms, each requiring some unique configuration. JFig gives developers a simple yet powerful tool to manage their applications configuration. It allows them to: * Store application configuration in one common repository of XML files * Access configuration data using one common, * Easily define multiple configurations, dynamically modifying those variables that need to change in different situations * Eliminate the error prone practice of defining the same configuration variables in multiple locations * Ease the management, deployment, and control of configuration files

Go To JFig - Java Configuration Solution


JEgg provides an implementation for Java Active Objects that simplifies the development of multithreaded Java applications. JEgg objects interact using arbitrary messages rather than synchronous method invocations. It can be configured to execute on the same or separate threads without changing the application logic, and it does not require the explicit use of Java synchronization or the java.lang.Thread class. Consequently, application objects are highly cohesive and loosely coupled with no compile-time dependencies.

Go To JEgg

Thought River Commons

The Thought River Commons is a collection of utilities and other nifty code items developed by Thought River North and Thought River South for use in our various internal projects, and made available for public use. Most experienced developers know that over time, the same needs are often encountered again and again. We wrote the Thought River Commons to satisfy those sorts of needs, and we figured that some other developers out there might make use of it, as well.

Go To Thought River Commons


Joone is a FREE Neural Network framework to create, train and test artificial neural networks. The aim is to create a powerful environment both for enthusiastic and professional users, based on the newest Java technologies. Joone is composed by a central engine that is the fulcrum of all applications that are developed with Joone. Joone's neural networks can be built on a local machine, be trained on a distributed environment and run on whatever device.

Go To Joone


NailGun: Insanely Fast Java NailGun is a client, protocol, and server for running Java programs from the command line without incurring the JVM startup overhead. Programs run in the server (which is implemented in Java), and are triggered by the client (written in C), which handles all I/O.

Go To NailGun

JoSQL (SQL for Java Objects)

JoSQL provides SQL capabilities for querying, ordering, and grouping of collections of Java objects. It allows a SQL statement to be applied to the collection of objects and the matching set returned, ordered and grouped. It should be used when a RDBMS is either too heavyweight or too impractical.

Go To JoSQL (SQL for Java Objects)

Java Plugin Framework (JPF)

JPF provides a runtime engine that dynamically discovers and loads \"plug-ins\". A plug-in is a structured component that describes itself to JPF using a \"manifest\". JPF maintains a registry of available plug-ins and the functions they provide (via extension points and extensions). One major goal of JPF is that the application (and its end-user) should not pay any memory or performance penalty for plug-ins that are installed, but not used. Plug-ins are added to the registry at application start-up or while the application is running but they are not loaded until they are called.

Go To Java Plugin Framework (JPF)


Dozer is a powerful, yet simple Java Bean to Java Bean mapper that recursively copies data from one object to another. Typically, these Java Beans will be of different complex types. Dozer supports simple property mapping, complex type mapping, bi-directional mapping, implicit-explicit mapping, as well as recursive mapping. The mapper is used any time you need to take one type of Java Bean and map it to another type of Java Bean. Most field mapping can be done automatically by Dozer using reflection, but any custom mapping can be predescribed in XML format.

Go To Dozer


Cougaar is a Java-based architecture for the construction of large-scale distributed agent-based applications. It is the product of a multi-year DARPA research project into large scale agent systems and includes not only the core architecture but also a variety of demonstration, visualization and management components to simplify the development of complex, distributed applications.

Go To Cougaar


A free Java library and extensible framework for mapping, parsing and unmarshalling CSV file contents into Plain Old Java Objects. It provides Xdoclet support for easy and painless mapping of CSV records to Java Objects. The library requires J2SE 1.5

Go To CSVObjects


CSVBeans is an object/csv mapping library that helps to build or parse CSV files in Java. There is no dependency on the library when creating your Java beans: you only work with POJOs. Its design allows to create your own parsers or builders if needed.

Go To CSVBeans


Kasai an open source 100% Java based authentication and authorization framework. It allows you to integrate into your application a granular, complete and manageable permission scheme. The goal of the framework is to provide a simple-to-use-yet-powerful security environment for multi-user applications.

Go To Kasai


Joda-Time provides a quality replacement for the Java date and time classes. The design allows for multiple calendar systems, while still providing a simple API. The 'default' calendar is the ISO8601 standard which is used by XML. The Gregorian, Julian, Buddhist and Coptic systems are also included, and we welcome further additions. Supporting classes include time zone, duration, format and parsing.

Go To Joda-Time


Gemini is a very simple-to-use non-intrusive Java framework that seamlessly enables bidirectional relationships between plain old Java objects (POJO). It helps developers to write simpler code to implement rich domain models by eliminating the need to manually check referential integrity and take care of updating the opposite property of a relationship (both simple and container properties). Gemini is available under dual license: * General Public License (GPL) - if you use this version of Gemini you must release your code under GPL * Commercial license - if our GPL version of Gemini does not serve your needs (mostly intended for commercial software developers)

Go To Gemini


JGAP (pronounced \"jay-gap\") is a genetic algorithms component written in the form of a Java package. It provides basic genetic mechanisms that can be easily used to apply evolutionary principles to problem solutions. The ground is laid for introducing Genetic Programming to JGAP in the near future! JGAP has been written to be very easy to use \"out of the box,\" while also designed to be highly modular so that more adventurous users can easily plug-in custom genetic operators and other sub-components.



Although the ZIP file format it is a proprietary, de-facto standard by PKWARE Inc., ZIP files are ubiquitous on the Internet and thus on many platforms today. The J2SE API provides a well known package java.util.zip with classes like ZipInputStream, ZipOutputStream and ZipFile for easy access to ZIP compatible files. However, this package has some limitations/disadvantages: * Sun's implementation uses the character set UTF-8 (eight bit Unicode character set) for entry names and comments instead of CP437 (the genuine IBM-PC character set) as used by the de-facto standard PKZIP from PKWARE. As a result, you cannot read or write ZIP files with international entry file names such as \"t?cht.txt\" in a ZIP file created by a (southern) German. * You need to use an additional API (the package java.util.zip) if your application needs to support ZIP compatible files in addition to ordinary files and directories, thereby significantly inflating your code and adding unnecessary complexity (which adds bugs, bugs, and even more bugs). * You can either read or completely write ZIP compatible files, but you cannot just update individual entries. * The classes do not support the concept of a directory, which you may want to create, modify, list or delete. * You cannot browse a ZIP compatible file with a JFileChooser or FileSystemView. The TrueZIP Library has been developed to overcome these limitations/disadvantages.

Go To TrueZIP

GDS Java API - Google Desktop Java API

GDAPI is a simple java api for access desktop search from any other java application. Google Desktop Search is a desktop search application that provides full text search over your email, computer files, chats and web pages you've viewed.

Go To GDS Java API - Google Desktop Java API

JSci - A science API for Java

This is a free set of JavaTM packages. The aim is to encapsulate scientific methods/principles in the most natural way possible. As such they should greatly aid the development of scientific based software.

Go To JSci - A science API for Java


Retrotranslator is a Java bytecode transformer that translates Java classes compiled with JDK 5.0 into classes that can be run on JVM 1.4. Supported features: generics, annotations, reflection on generics and annotations, enums, autoboxing, for-each loop, varargs, static import, concurrency utilities, collections framework enhancements.

Go To Retrotranslator


Enhydra Octopus is a Java-based Extraction, Transformation, and Loading (ETL) tool. It may connect to any JDBC data sources and perform transformations defined in an XML file.

Go To Octopus


Sha4J is one class implementation of SHA-1, SHA-224, SHA-256, SHA-384 and SHA-512 algorithms. Sha4J calculates hash from an inputstream and it can be used with any inputstream from strings to serial interfaces.

Go To Sha4J

j-Interop: Open Source, Non Native Java - DCOM Access Bridge

j-Interop implements DCOM wire protocol (MSRPC) to enable development of Pure Bi-Directional, Non-Native Java applications which can interoperate with any COM component.The implementation itself is purely in Java and does not use JNI to provide native access,thus being truly platform independent. It has full support for COM automation and supports callback from COM Servers (event handling). It also supports complete Create-Retrieve-Update-Delete operations on Windows registry in a non-native way as well. It has been tested on Windows XP/2K/2K3 and Fedora 5.

Go To j-Interop: Open Source, Non Native Java - DCOM Access Bridge


Line is a Java library for handling console input. It is similar in functionality to BSD editline and GNU readline. People familiar with the readline/editline capabilities for modern shells (such as bash and tcsh) will find most of the command editing features of JLine to be familiar.

Go To jLine

Scriptella ETL

Scriptella is an ETL (Extract-Transform-Load) and script execution tool. Its primary focus is simplicity. It doesn't require the user to learn another complex XML-based language to use it, but allows the use of SQL or another scripting language suitable for the data source to perform required transformations.

Go To Scriptella ETL


WinRun4j is a java launcher for windows. It is an alternative to javaw.exe and provides the following benefits: * Uses an INI file for specifying classpath, main class, vm args, program args. * Custom executable name that appears in task manager. * Additional VM args for (eg.) more flexible memory use. * Built-in icon replacer for custom icon. * Built-in pre-VM splash screen with auto-hide. * JNI access INI file and splash screen.

Go To WinRun4J


NativeCall lets you call native methods from Java without JNI code. With NativeCall, you can call all methods implemented in any DLL. It supports structs, Strings, primitive types (int and boolean), byte and char arrays and output parameters. NativeCall is implemented for the Windows platform.

Go To NativeCall

Apache POI

The POI project is the master project for developing pure Java ports of file formats based on Microsoft's OLE 2 Compound Document Format. OLE 2 Compound Document Format is used by Microsoft Office Documents, as well as by programs using MFC property sets to serialize their document objects. There following are ports, packages or components contained in the POI project: * POIFS is the set of APIs for reading and writing OLE 2 Compound Document Formats. * HSSF is the set of APIs for reading and writing Microsoft Excel 97(-XP) spreadsheets. * HWPF is the set of APIs for reading and writing Microsoft Word 97(-XP) documents. * HSLF is the set of APIs for reading and writing Microsoft PowerPoint 97(-XP) documents. * HPSF is the set of APIs for reading property sets.

Go To Apache POI


Barbecue is an open-source, Java library that provides the means to create barcodes for printing and display in Java applications. A number of barcode formats are supported and many more can be added via the flexible barcode API. Barcodes can be output to three different image formats (PNG, GIF, JPEG), used as a Swing component, or written out as SVG.

Go To barbecue


Barcode4J is a flexible generator for barcodes written in Java.

Go To Barcode4J


JavaANPR is an automatic number plate recognition software, which implements algorithmic and mathematical principles from field of artificial intelligence, machine vision and neural networks.

Go To JavaANPR


JTimepiece is an advanced library for working with dates and times in Java. Features include: reduces number of objects created when working with multiple date/times, methods for computing difference between two date/times, support for time zones, leap year and daylight savings, methods for converting between string and date/times, methods for adding and subtracting to and from date/times, methods for easily retrieving individual parts of date/times, no dependencies to other non-standard Java libraries, compatible with J2SE 1.2 and above.

Go To JTimepiece


JSaPar is a Java library providing a schema based parser/producer of CSV (Comma Separated Values) and flat files. Features * Use a schema to express the syntax of your text file. * The schema can be written in xml or created directly within the java code. * Use two schemas to convert between different text formats. * Can handle huge files as streams without loading everything into memory.

Go To JSaPar


The JUnique library can be used to prevent a user to run at the same time more instances of the same Java application. JUnique implements locks and communication channels shared between all the JVM instances launched by the same user.

Go To JUnique


Marvin is an extensible image processing framework developed in Java. Every image processing algorithm is developed as a plug-in and it can be plugged into the MarvinEditor, an image manipulation program that uses plug-ins developed using Marvin Framework, or in third-party applications. Currently there are 36 plug-ins available. The framework provide features to: * manipulate images * manipulate captured video frames * multi-threading image processing * integrate plug-ins with Graphical User Interface(GUI) * analyze plug-in performance * extend features via plug-ins

Go To Marvin


Shotoku is designed to provide easy access to content repositories in which you can store data, bind metadata, revision content, and provide branching and merging strategies. This means Shotoku can interface with repositories such as the Java Content Repository (JSR 170: JCR), Subversion, and file-system based repository implementations that aim to support basic revisioning mechanisms.

Go To Shotoku


Transmorph is a java library used to convert a Java object of one type into an object of another type (with another signature, possibly parameterized). Transmorph strong points are : * support conversion for primitives and objects * support conversion to multidimensional arrays * support conversion to parameterized collections and types * support conversion for beans that contain bi-directional relationships * you can choose exactly which converters you want to use * jars for JDK 1.4 and JDK 1.5 * no dependencies * 40 converters included * easy to add more converters * objects can be modified after conversion using modifiers * can convert to a type given either its java type (Class) or signature * easy to use

Go To Transmorph


WiseMapping is a free web based mind map product. The goal of this project is to provide a high quality product that can be deployed by enterprises, educational and academic institutions. WiseMapping is based on the same code product supporting WiseMapping.com.

Go To WiseMapping


ZXing (pronounced \"zebra crossing\") is an open-source, multi-format 1D/2D barcode image processing library implemented in Java, with ports to other languages. Our focus is on using the built-in camera on mobile phones to scan and decode barcodes on the device, without communicating with a server. However the project can be used to encode and decode barcodes on desktops and servers as well.

Go To ZXing

Java is a trademark or registered trademark of Sun Microsystems, Inc. in the United States and other countries. This site is independent of Sun Microsystems, Inc.