• del.icio.us
  • StumbleUpon
  • Technorati
  • Digg
  • Netvouz
  • Reddit
  • Google
  • Facebook
  • DZone
  • MisterWong

Open Source Software in Java

Ajax Frameworks SweetDEV RIA

SweetDEV RIA is a complete set of world-class Ajax tags in Java/J2EE. It helps you to design Rich GUI in a thin client. SweetDEV RIA provides you Out-Of-The-Box Ajax components. Continue to develop your application with frameworks like Struts. SweetDEV RIA tags can be easily plugged into your JSP pages. The wonderful and unique approach of SweetDEV RIA allows enterprises to move forward to the Ajax world, without having to choose “blackbox” solution or to trash all of their existing frameworks.

See all Ajax Frameworks in Java

Aspect-Oriented Frameworks Azuki Framework

The Azuki Framework is a java application framework delivered under LGPL license, designed to reduce the development, deployment and maintenance costs of software systems. It provides a rapid application assembly from known components in order to build large systems. Thus, the software conception is split into two main stages:

  • Independent component creation (technical & business service).
  • Application assembly (The weaving : Definition of component dependencies)

The latter is performed with a graphical tool named “the weaver”.
By representing component interactions using different perspectives, the weaver provides a straightforward way to analyze an application’s architecture, allowing deep and easy customization of its behavior.

Components in the framework are called Azuki bean or bean for short. Creating a bean in the Azuki Framework is as simple as creating a short XML description file that declare a POJO. The main advantage of the Azuki bean design is that each bean is independent and has no dependency with others beans. Each bean is delivered within a single jar file archive where all the necessary code is encapsulated, this allowing the bean to be instantly plugged into the framework.

Communication between beans is achieved using concurrent use of different programing techniques: AOP (Aspect-Oriented Programming), Dependency Injection, EBP (Event-Based Processing) and Contextual Programing.

See all Aspect-Oriented Frameworks in Java

Assemblers Jasmin

Jasmin is an assembler for the Java Virtual Machine. It takes ASCII descriptions of Java classes, written in a simple assembler-like syntax using the Java Virtual Machine instruction set. It converts them into binary Java class files, suitable for loading by a Java runtime system.

Jasmin was originally created as a companion to the book “Java Virtual Machine”, written by Jon Meyer and Troy Downing and published by O’Reilly Associates. Since then, it has become the de-facto standard assembly format for Java. It is used in dozens of compiler classes throughout the world, and has been ported and cloned multiple times. For better or worse, Jasmin remains the oldest and the original Java assembler.

See all Assemblers in Java

Behaviour Driven Development Tools beanSpec

beanSpec is a java based solution for Behaviour Driven Development, specifiying, checking and summarizing the behaviour of a component in a declarative, narrative style.

See all Behaviour Driven Development Tools in Java

Benchmarks Jakarta Benchmark Tag Library

In dicussions about how best to design tag libraries, issues of performance sometimes arise. The simple ‘benchmark’ tag library should aid in the performance testing of other taglibs and JSP pages in general. This library isn’t a full-featured benchmarking package. It’s just a simple way to get rough data if you want to sketch the relative performance of tags, tag combinations, or arbitrary JSP fragments.

See all Benchmarks in Java

Blogging Solutions MapleBlog

MapleBlog is a simple MVC Struts 1.1-based Web log that uses Hibernate as its model layer and Tiles/JSP for its View.

See all Blogging Solutions in Java

Build Systems Rant

Rant stands for Remote Ant. It is a distributed build system that allows an Ant build file to launch builds on other systems and receive exceptions should they occur.

See all Build Systems in Java

Business Intelligence Tools OpenI

OpenI is a simple web application that does out-of-box OLAP reporting. Its a J2EE web application to build and publish interactive reports from OLAP data sources. It uses JPivot, Mondrian, R Project, JFreeChart and JasperReports

See all Business Intelligence Tools in Java

ByteCode Engineering Libraries Tea Trove Class File API

The class file API simplifies creation of Java class files. Instead of having to write byte-code, the Class File API allows you to call high-level methods which generate the byte-code for you. Development of the Trove class file API has ceased. Continued development is under the Cojen project.

See all ByteCode Engineering Libraries in Java

Cache Solutions Shoal

Shoal is a java based scalable dynamic clustering framework that provides infrastructure to build fault tolerance, reliability and availability.

The framework can be plugged into any product needing clustering and related distributed systems capabilities without tightly binding to a specific communications infrastructure.

See all Cache Solutions in Java

Charting & Reporting Tools jCharts

jCharts is a 100% Java based charting utility that outputs a variety of charts. This package has been designed from the ground up by volunteers for displaying charts via Servlets, JSP’s, and Swing apps.

See all Charting & Reporting Tools in Java

Chat Servers OpenCHAT

OpenCHAT is a 100% HTTP and HTML based chat server written in Java. It has it?s own stand alone HTTP server integrated and does not need any Applet or special software on client side to run on, but only a frames enabled web browser.

See all Chat Servers in Java

Clustering & Grid Middleware OpenRDS

OpenRDS is a Java clustering framework conceived for making requisition-based distributed systems easy to develop and manage.

It has been designed for extreme simplicity on client code, allowing an application to run a “hello world” with just 2 lines of code.

Embedding OpenRDS into an existing application is as simple as wrapping the code that needs to be clustered in a “Requisition” class (somewhat similar to a “Runnable” class) and calling “mainNode.processRequisition(new MyRequisition())”.

See all Clustering & Grid Middleware in Java

Code Analyzers UCDetector

UCDetector (Unecessary Code Detector) is a Open Source eclipse PlugIn Tool to find unecessary (dead) java code. It also tries to make code final, protected or private. UCDetector also finds cyclic dependencies between classes.

See all Code Analyzers in Java

Code Beautifiers Java2Html

Java2Html converts Java (and other) source code (complete files or snippets) to HTML, RTF, TeX and XHTML with syntax highlighting. This open source Java project consists of an extendible library along with a Java application, a Java applet and many plugins in order to integrate the library into other programs.

See all Code Beautifiers in Java

Code Coverage Tools CodeCover

CodeCover is an extensible code coverage tool. It has support for Java and COBOL, supports statement coverage, branch coverage, loop coverage, and MC/DC, and performs source instrumentation for the most accurate coverage measurement. It has a CLI interface for easy use from the command line, an Ant interface for easy integration into an existing build process, and is fully integrated into Eclipse. It has customizable HTML and CSV reports, per test case coverage measurement, full integration with JUnit for automatic recognition of test cases, live notification for manual test case recognition, a boolean analyzer that helps to find test cases to increase MC/DC, and a correlation matrix to find redundant test cases and optimize your test suite.

See all Code Coverage Tools in Java

Codecs JMAC

JMAC is a Java implementation of the Monkey’s Audio decoder/encoder/JavaSound SPI.

See all Codecs in Java

Collections Libraries Commons Collections

Commons-Collections seek to build upon the JDK classes by providing new interfaces,
implementations and utilities.

There are many features, including:

  • Bag interface for collections that have a number of copies of each object
  • Buffer interface for collections that have a well defined removal order, like FIFOs
  • BidiMap interface for maps that can be looked up from value to key as well and key to value
  • MapIterator interface to provide simple and quick iteration over maps
  • Type checking decorators to ensure that only instances of a certain type can be added
  • Transforming decorators that alter each object as it is added to the collection
  • Composite collections that make multiple collections look like one
  • Ordered maps and sets that retain the order elements are added in, including an LRU based map
  • Identity map that compares objects based on their identity (==) instead of the equals method
  • Reference map that allows keys and/or values to be garbage collected under close control
  • Many comparator implementations
  • Many iterator implementations
  • Adapter classes from array and enumerations to collections
  • Utilities to test or create typical set-theory properties of collections such as union, intersection, and closure

See all Collections Libraries in Java

Command Line Tools JOpt Simple

JOpt Simple is a Java library for parsing command line options, such as those you might pass to an invocation of javac. As closely as possible, JOpt Simple attempts to honor the command line option syntaxes of POSIX getopt() and GNU getopt_long().

See all Command Line Tools in Java

Content Management Systems Daisy

Daisy is a comprehensive content management application framework, consisting of a standalone repository server accessible through HTTP/XML and/or a high-level (remote) Java API, and an extensive browsing and editing DaisyWiki application running inside Apache Cocoon. Daisy is licensed under the commercially-friendly Apache License 2.0.

See all Content Management Systems in Java

Continuous Integration LuntBuild

LuntBuild is a powerful build automation and management tool. Continuous integration or daily build can be easily setup through a clean web interface. Generated builds are well managed through functions such as search, categorization, promotion, patching, deletion, etc. It also acts as a central build artifacts download area for your whole team.

See all Continuous Integration in Java

Database Connection Pools SmartPool

SmartPool is a connection-pooling component modeled on pooling features provided by Application Server. SmartPool makes an attempt to solve critical issues like connection leaks, connection blocking, open JDBC objects like Statements, PreparedStatements etc. Features of SmartPool include support for multiple pools, automatic closing of associated JDBC objects, detect connection leaks based on configurable time-outs, track connection usage, forced recovery of least recently used connections, wrap SmartPool to an existing pool, monitor runtime status of the pools apart from conventional pooling support.

See all Database Connection Pools in Java

Database Engines Mckoi SQL Database

Mckoi SQL Database is optimized to run as a client/server database server for multiple clients, however it can also be embedded in an application as a stand-alone database. It is highly multi-threaded and features an extendable object-oriented engine.

See all Database Engines in Java

Decompilers Jdec

Jdec is a java decompiler which is written using java and swing. It can be used to reverse the bytecodes present in a .class File to produce a Java Source File which can be nearly correct or equivalent (Due To different Interpretations) to the original java file. It also has a good UI. It can decompiler entire jar also. Features:

  • Decompiling a java class
  • Decompiling a jar file
  • Selective Decompilation of a class file
  • Decompiling 2 Versions
  • Disassembling a java class
  • Local variable information
  • Exception Table Information
  • Constant Pool Details
  • Sketelon Display of Class File

See all Decompilers in Java

Dependency Injection Frameworks Gravity

Gravity is a dependency and configuration management framework that allows multiple forms of configuration via a plugin model with a primary focus on the Dependency Injection / Inversion of Control (IoC) design pattern. The framework comes with a default BeanShell plugin for configuring the components.

See all Dependency Injection Frameworks in Java

Design by Contract Tools jContractor

jContractor is a 100% pure Java implementation of Design By Contract for the Java language. Contracts are written as methods that follow a simple naming convention. jContractor provides runtime contract checking by instrumenting the bytecode of classes that define contracts. jContractor can either add contract checking code to class files to be executed later, or it can instrument classes at runtime as they are loaded. All contracts are written in standard Java, so there is no need to learn a special contract specification language. jContractor is purely library based, requires no preprocessing or modifications to the JVM.

See all Design by Contract Tools in Java

EJB Servers JBoss

JBoss is advanced middleware with a full J2EE based personality that IT departments look for. But that is not all, the OEM and ISV community embraced JBoss as a highly flexible service oriented architecture on which to build their own products.

See all EJB Servers in Java

ERP & CRM Software Cream

Cream is designed to meet the unique demands publishers have, including features that allow subscription management, support for multiple products (print subscriptions, advertising, online subscriptions, books, etc.), customer communications (both incoming and outgoing), and easy-to-use reporting and analytical functions. Cream also enables publishers to track special offers, such as seasonal discounts and trade shows. With Cream, media organizations can put their business data to work, increasing sales and customer satisfaction. It allows employees to have up-to-date information throughout the sales cycle, and lets managers have greater insight into sales patterns.

See all ERP & CRM Software in Java

Eclipse Plugins X-Ray

X-Ray is an open-source software visualization plug-in for the Eclipse framework. Software designers use visualization tools in order to raise the level of abstraction and reduce the amount of information to the one needed. Most of these tools are stand-alone programs, that force the user to switch between different windows and contexts. This context switch represents a problem, being time consuming and forcing the user to download, install and use, tools or systems external to his favorite code editor. X-Ray provides System Complexity View, Class Dependency View and Package Dependency View directly inside Eclipse.

See all Eclipse Plugins in Java

Enterprise Service Bus / Java Business Integration Jitterbit

Jitterbit is an open source integration tool that delivers a quick and simple way to design, configure, test, and deploy integration solutions. It supports many document types and protocols: XML, web services, database, LDAP, text, FTP, HTTP and HTTPS, file.

See all Enterprise Service Bus / Java Business Integration in Java

Expression Languages JEval

JEval is an advanced library for adding high-performance, mathematical, Boolean and functional expression parsing and evaluation to your Java applications. Features include: parses and evaluates dynamic and static expressions at run time, supports all major mathematical and Boolean operators, supports custom functions, 39 Math and String functions built in and ready to use, supports nested functions, supports variables, allows for custom variable resolver, no dependencies to other non-standard Java libraries, compatible with J2SE 1.2 and above.

See all Expression Languages in Java

Financial Software GFP (Personal Finance Manager)

GFP (Personal Finance Manager) is a software that aids on personal finances administration offering a variety of reports, charts and filtering data on screen where is possible to obtain important information for your financial health.

See all Financial Software in Java

Flash Tools JavaSWF2

JavaSWF2 – A Java Toolkit for Adobe (Macromedia) Flash™ Parsing and Generation.

JavaSWF2 is a set of Java packages that enable the parsing, manipulation and generation of the Macromedia Flash™ file format known as SWF (“swiff”).

See all Flash Tools in Java

Forum Software mvnForum

mvnForum is an open source, powerful, easy to use, easy to setup bulletin board (forum) built on the Java J2EE technology (Jsp/Servlet). mvnForum is compatible with any Servlet Containers which supports Jsp 1.2 and Servlet 2.3.

See all Forum Software in Java

Game Engines and Libraries ogre4j

ogre4j is a project that enables the use of the OGRE (Object-Oriented Graphics Rendering Engine) library through JNI in Java applications.

See all Game Engines and Libraries in Java

General Purpose Libraries Ostermiller Utils

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

See all General Purpose Libraries in Java

Genetic Programming Toolboxes JGProg

Genetic Programming (JGProg) is an open-source pure Java implementation of a strongly-typed Genetic Programming experimentation platform.

See all Genetic Programming Toolboxes in Java

Geospatial Software GeoNetwork

GeoNetwork opensource is a standardized and decentralized spatial information management environment, designed to enable access to geo-referenced databases, cartographic products and related metadata from a variety of sources, enhancing the spatial information exchange and sharing between organizations and their audience, using the capacities of the internet. This approach of geographic information management aims at facilitating a wide community of spatial information users to have easy and timely access to available spatial data and to existing thematic maps that might support informed decision making.

See all Geospatial Software in Java

Groupware Software Data Share

DataShare is network application for clients that wish to share data using a central server-> DataShare. DataShare is written in Java, and allows clients to share data (send and receive) without having to know anything about the other clients. It is envisioned that DataShare will be used in collaborative type environments. A client called Rendezvous is already written and available to use DataShare. Rendezvous allows multiple users to simultaneously collaborate using chat, paint, desktop sharing, and audio-video conferencing.

See all Groupware Software in Java

HTML Parsers Java Mozilla Html Parser

MozillaParser is a Java Html parser based on mozilla’s html parser. it acts as a bridge from java classes to Mozilla’s classes and outputs a java Document object from a raw ( and dirty) HTML input

See all HTML Parsers in Java

IDEs NetBeans

The NetBeans IDE is a free, open-source Integrated Development Environment for software developers. It provides all the tools you need to create professional desktop, enterprise, web and mobile applications, in Java, C/C++ and even Ruby. The IDE runs on many platforms including Windows, Linux, Mac OS X and Solaris; it is easy to install and use straight out of the box.

See all IDEs in Java

Identity Management Solutions Acegi Security

Acegi Security is a powerful, flexible security solution for enterprise software, with a particular emphasis on applications that use Spring. Using Acegi Security provides your applications with comprehensive authentication, authorization, instance-based access control, channel security and human user detection capabilities.

See all Identity Management Solutions in Java

Installers Generators AntInstaller

AntInstaller is an installer framework which uses a simple XML file to define the UI, and Apache Ant as a back end. The installers can therefore do anything Ant can, and are compatible with Ant’s extension mechanism. Installers can be packaged as a selfextracting Jar and can run from the command line or a Swing GUI. AntInstall can also be used as a GUI front end for existing Ant builds.

See all Installers Generators in Java

Instant Messaging Software JSO

JSO is the “Jabber® Stream Objects” library, for Java. JSO provides low-level support for Jabber/XMPP protocol elements, as well as a fully-controllable stream connection interface. The goal is to provide a highly customizable and flexible platform for building Jabber-based applications at all levels (clients, components, and servers).


  • Support for most of the IETF standards XMPP-Core and XMPP-IM
  • Designed for use with channel-based I/O (blocking and non-blocking) in J2SE 1.4
  • Extensive use of the Java 2 Collections framework
  • Simple, user-controlled operation of the Stream (single-threaded model)
  • Separation of “routing” and “dispatching”, for flexible design considerations
  • Specialized “stream” object model, with support for custom interfaces and implementations
  • Flexible and extensible import/export options, with built-in support for importing/exporting XML-formatted strings and W3C DOM structures
  • Complete support for XPath 1.0

See all Instant Messaging Software in Java

Issue Tracking Software Elips

ELIPS for ELectronic Issue Processing Software is a tool enabling the user to manage different kind of issues, ie :

  • bug correction request
  • task processing request
  • enhancement request
  • work processing request Elips is developped in Java and Jsp technologies, and runs up to now with Tomcat and MySQL/SqlServer/Oracle on Windows/Linux/MacOs X platforms. It is translated in several languages too like english, french, spanish, portuguese, and german. Elips is easy to install and configure. Its use is also very simple and intuitive. Enjoy with Elips!

See all Issue Tracking Software in Java

J2EE Frameworks Dinamica Framework

This framework is based on the MVC architecture (model-view-controller), but in contrast with other MVC frameworks, most of its parts are highly reusable, meaning that your programming effort is minimized whenever possible, avoiding unnecessary programming. Many tasks are accomplished by simply configuring some XML files and templates. Presentation templates are completely separated from logic. Dinamica does not use any template language nor JSP pages technology, just plain text files with some special markers that will be replaced by the actual data.

See all J2EE Frameworks in Java

JDBC Drivers Bottomline

Bottomline is a JDBC Bridge API that loads database drivers directly from JAR archives. Unlike JDBC, Bottomline uses custom class loaders to load database drivers. This gives an advantage to load multiple versions of the same database driver from different JAR files. Developers can build applications using conventional JDBC and transparently use Bottomline underneath. Bottomline also seamlessly integrates with applications servers like JBoss and can be bound in JNDI which allows connections to be pooled using the application server’s Connection Pooler.

See all JDBC Drivers in Java

JMS Implementations Hermes JMS

Swing UI allows you to interactively use and monitor JMS providers.

See all JMS Implementations in Java

JMX Tools and Libraries EJTools JMX Browser

The EJTools JMX Browser is a tool which allows to view and interact with the JMX space in a JMX compatible implementation. It provides the following features:

  • remote connections via RMI/IIOP/others (Swing-based)
  • local connection (Web-based)
  • a hierarchical view of the domains and the mbeans
  • access to the attributes, the operations and the notifications
  • attribute plotting The EJTools JMX Browser comes in two flavors :
  • A Swing-based application, that can be connect remotly to interact with the JMX server/implementation.
  • A Web-based application, that can be run in any J2EE 1.3 Web stack. It provides an easy way interact with the JMX server.

See all JMX Tools and Libraries in Java

Job Schedulers Job Scheduler

The Job Scheduler is a batch program operating as a demon, and can be controlled using a graphical user interface. The Job Scheduler uses an XML configuration for the scheduled programs, scripts and for the timing and frequency of task processing. An API is available for Java, Javascript, Perl, VBScript that hands control of events and logging to your jobs. The Job Scheduler is used for Job Automation – for example, automatically running database procedures with the free database systems MySQL, PostgreSQL, with SQL Server or with Oracle. The Job Scheduler is available for the following operating systems: Windows 2000 and Windows XP, Linux, Solaris and HP-UX.

See all Job Schedulers in Java

Localization and Internationalization Tools Resource bundle manager

RB Manager is a project to maintain multiple language support in a moderately large project. RB Manager offers the following features:

  • RB Manager can edit multiple language files when appropriate.
  • Entries are checked for proper format and assured not to be duplicates.
  • RB Manager provides a better grouping of resources, so that individual translations are easy to find.
  • Each language file will display in its own view a list of only resources that are untranslated.
  • RB Manager keeps track of statistics such as number of resources, untranslated items, etc.
  • RB Manager allows importing and exporting of translation data into multiple formats
  • Use of the application cuts down on development, translation, and debugging time in any internationalized setting

See all Localization and Internationalization Tools in Java

Logging Tools TracingClassLoader

A replacement for the system ClassLoader that instruments classes on load-time with tracing output statements.

See all Logging Tools in Java

Mail Clients Snowmail

An opensource & freesource complete simple mail client that focuses on security. All protocols have been reimplemented from scratch (Mime, POP, SMTP). With a statistical spam filter, international characters & keyboard. With global encryption for the mail data on the disk and support for optional external GnuPG.

See all Mail Clients in Java

Media Players & Libraries JLayer

JLayer is a JAVA™ library that decodes, converts and plays MP3 files in real-time. JLayer supports MPEG 1/2/2.5 Layer 1/2/3 audio format. JLayer doesn’t need JMF.

See all Media Players & Libraries in Java

Mocking Frameworks Mocquer

Mocquer is a similar mock tool as EasyMock. With the help of Dunamis Project, it extends the function of EasyMock to support mock object creation for both class and interface.

See all Mocking Frameworks in Java

Network Clients Lobo

Lobo is a web browser written completely in Java. It has support for HTML 4, Javascript and CSS2 (still with some limitations). Lobo has a browser API and a plugin infrastructure. Its rendering engine is Cobra.

See all Network Clients in Java

Network Servers P2P-Radio

P2P-Radio is a program that can distribute audio and video streams (MP3/Ogg Vorbis/NSV) over the Internet in a peer-to-peer manner. It’s possible to create your own internet radio station with P2P-Radio!

P2P-Radio is programmed in Java and runs on Windows, Mac OS X, Linux and many other systems.

See all Network Servers in Java

Neural Network Frameworks Joone - Java Object Oriented Neural Engine

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.

See all Neural Network Frameworks in Java

OSGi Frameworks Equinox

Equinox is basically a plug-in system that allows developers to implement an application in a set of “bundles” using common services and infrastructure.

From a code point of view, Equinox is an implementation of the OSGi R4 core framework specification, a set of bundles that implement various optional OSGi services and other infrastructure for running OSGi-based systems.

See all OSGi Frameworks in Java

Obfuscators Soot

Soot is a Java bytecode manipulation and optimization framework.

It provides four intermediate representations for analyzing and transforming Java bytecode:

  1. Baf: a streamlined representation of bytecode which is simple to manipulate.
  2. Jimple: a typed 3-address intermediate representation suitable for optimization.
  3. Shimple: an SSA variation of Jimple.
  4. Grimp: an aggregated version of Jimple suitable for decompilation and code inspection.

Soot can be used as a stand alone tool to optimize or inspect class files, as well as a framework to develop optimizations or transformations on Java bytecode.

See all Obfuscators in Java

P2P Software Dijjer

Dijjer is a peer-to-peer web cache. It is “pure” P2P because it relies on the computers of those using it, and is almost completely decentralized.

Dijjer is free P2P software that dramatically reduces the bandwidth needed to host large files.

Bandwidth is a problem for anyone hosting big files. As soon as your music, mp3 blog, or movie gets too popular, either your site goes down or you get hit with a huge bandwidth bill. Worse, the cost and hassle of distributing large media files means that the internet isn’t living up to its potential as a democratic medium. Dijjer solves this problem. What distinguishes it from similar P2P tools (like Bittorrent) is how easy it is to use for publishers and users.

See all P2P Software in Java

PDF Libraries PDF Box

PDFBox is a Java PDF Library. This project will allow access to all of the components in a PDF document. More PDF manipulation features will be added as the project matures. This ships with a utility to take a PDF document and output a text file.

See all PDF Libraries in Java

Parser Generators JavaCC

Java Compiler Compiler (JavaCC) is the most popular parser generator for use with Java™ applications. A parser generator is a tool that reads a grammar specification and converts it to a Java program that can recognize matches to the grammar. In addition to the parser generator itself, JavaCC provides other standard capabilities related to parser generation such as tree building (via a tool called JJTree included with JavaCC), actions, debugging, etc.

See all Parser Generators in Java

Persistence Frameworks SeQuaLite

SeQuaLite is a data access framework over jdbc. Features include CRUD operations, Lazy-Load, Cascading, Paging, on-the-fly SQL generation. It helps reduce development time effectively.

See all Persistence Frameworks in Java

Portals uPortal

uPortal is an open-standard effort using Java, XML, JSP and J2EE. It is a collaborative development project with the effort shared among several of the JA-SIG member institutions.

See all Portals in Java

Profilers JAMon API

The Java Application Monitor (JAMon) is a free, simple, high performance, thread safe, Java API that allows developers to easily monitor production applications. JAMon can be used to determine application performance bottlenecks, user/application interactions, and application scalability. JAMon gathers summary statistics such as hits, execution times (total, average, minimum, maximum, standard deviation), and simultaneous application requests. JAMon statistics are displayed in the clickable JAMon Report.

See all Profilers in Java

Project Management Tools Baralga

Baralga enables you to keep track of the time you spend working on different projects. You can record the projects your are working or you can manually enter and edit project activities. Thus, you will be able to easily memorize when and how long you have been working on every project.

See all Project Management Tools in Java

RSS & RDF Tools Sandler

Sandler is an Atom parser and manipulation library implemented in Java. Sandler provides an idiommatic Java object model for working with Atom feeds, as well as mechanisms to build said object models from various types of XML input.

See all RSS & RDF Tools in Java

Rule Engines OpenRules

OpenRules is a full-scale open source Business Rules Management Framework. It efficiently uses the power of MS Excel, Eclipse IDE and open source Java libraries to create, deploy, execute, and maintain different rule engines with complex business logic controlled by business analysts.

See all Rule Engines in Java

SQL Clients LiquiBase

LiquiBase is a DBMS-independent library for tracking, managing and applying database changes. All database changes (structure and data) are stored in an XML-based descriptive manner and checked into source control. LiquiBase has the following features:

  • Supports merging of changes from multiple developers
  • Works well with code branches
  • Allows you to manage production data as well as various test datasets
  • Works in an environment where multiple machines will be attempting to migrate the database concurrently
  • Supports automated change-applying or generation of SQL scripts that can be approved and applied by a DBA
  • Supports rolling back changes
  • Can create database "diff"s and can generate change logs from them

See all SQL Clients in Java

SSH Libraries Telnet/SSH/Terminal for Java Application

The Telnet/SSH/Terminal for Java Application is telnet & SSH clients you can run as applets in browser or via Java Web Start.

See all SSH Libraries in Java

Scientific Libraries JAMA

JAMA is a basic linear algebra package for Java. It provides user-level classes for constructing and manipulating real, dense matrices.

JAMA provides five fundamental matrix decompositions:

  • Cholesky Decomposition of symmetric, positive definite matrices
  • LU Decomposition (Gaussian elimination) of rectangular matrices
  • QR Decomposition of rectangular matrices
  • Eigenvalue Decomposition of both symmetric and nonsymmetric square matrices
  • Singular Value Decomposition of rectangular matrices

See all Scientific Libraries in Java

Scripting Languages Nice

Nice is a new programming language. It extends the ideas behind object-orientation in order to better support modular programming and static type safety. It also incorporates features from functional programming, and puts into practice state-of-the-art results from academic research. This results in more expressivity, modularity and safety.

See all Scripting Languages in Java

Search Engines Egothor

Egothor is an Open Source, high-performance, full-featured text search engine written entirely in Java. It is technology suitable for nearly any application that requires full-text search, especially cross-platform. It can be configured as a standalone engine, metasearcher, peer-to-peer HUB, and, moreover, it can be used as a library for an application that needs full-text search.

See all Search Engines in Java

Security Software Jasypt

Jasypt is a java library which allows the developer to add basic encryption capabilities to his/her projects with minimum effort, and without the need of having deep knowledge on how cryptography works.


  • High-security, standards-based encryption techniques, both for unidirectional and bidirectional encryption. Encrypt passwords, texts, numbers, binaries...
  • Transparent integration with Hibernate.
  • Suitable for integration into Spring-based applications and also transparently integrable with ACEGI (Spring Security).
  • Integrated capabilities for encrypting the configuration of applications (i.e. datasources).
  • Open API for use with any JCE provider.

See all Security Software in Java

Source Control Tools SuperVersion

Superversion is a multi-user distributed version control system based on change sets. A major focus in its development is efficiency and ease-of-use. Features include a graphical user interface, branches, conflict detection and resolution, a history tree view, export and report functions, CVS-compatible keyword substitution, overridable file type autodetection and a transactional internal database.

See all Source Control Tools in Java

Streaming Software Stream-2-Stream

Stream-2-Stream implements multicast+, a next generation streaming protocol. Multicast+ is more efficient and requires less bandwidth than direct streaming (e.g. shoutcast/icecast). Stream-2-Stream (abbreviated “s2s” or “S2S”) stations have no user limit; stations can be set up without paying a fortune for bandwidth. Stream-2-Stream saves bandwidth by passing streams from one peer to another through multicast and unicast p2p, rather than everyone getting a stream from one central server.

Stream-2-Stream’s features include:

  • Integrated MP3, Ogg media player.
  • Supported codecs include MP3, NSV, AAC, and AAC+.
  • Easy to use GUI
  • Bandwidth is tested automatically for the best p2p streaming performance
  • Settings are saved to xml
  • Easy to use server command-line
  • A shoutcast/icecast internet radio/TV Station is used as the source
  • Freeloaders/Leechers (peers that only listen but don’t want to send out the stream to other listeners) will be detected
  • The data stream can be signed; you can be sure that it arrives unchanged
  • Very efficient communication (low overhead).
  • The network structure can be viewed with a monitor
  • Peers can be denied service
  • Streams can be recorded to files for later viewing
  • Integrated Station viewer allows you to listen (or watch) by double-clicking on a station

See all Streaming Software in Java

Swing Components Javu WingS

Javu WingS is a set of lightweight Java components providing most of the controls, needed for a typical application/applet. The component hierarchy of Javu WingS is similar to Swing, but the API is simplified and closer to AWT. Most of the components are derived from WingComponet which (like JComponent) is derived from java.awt.Componet Top level classes WingApplet, WingDialog, WingFrame and WingWindow are derived from appropriate AWT classes and contain WingRootPane (analogous to JRootPane). The components use typical AWT events, work with AWT layout managers, and can be used together with AWT and Swing components.

See all Swing Components in Java

Tag Libraries Pager Tag Library

The Pager Tag Library is the easy and flexible way to implement paging of large data sets in JavaServer Pages (JSP). It can emulate all currently known paging styles with minimal effort. It also includes re-usable index styles that emulate the search result navigators of popular web sites such as GoogleSM, AltaVista® and Yahoo!. The Pager Tag Library does most of the work for you by dynamically organizing your data set into pages and generating a browsable index with virtually any look desired.

See all Tag Libraries in Java

Template Engines Transformica

Transformica is a versatile and extensible code generator. It supports multiple source models including database metadata, Java source files, grammar files and custom models. Transformica is implemented as an Ant task and uses Velocity as its template engine.

See all Template Engines in Java

Testing Tools dbMonster

Test data generator for SQL databases.

See all Testing Tools in Java

Text Editors FreeMind

FreeMind is a premier free mind-mapping software written in Java. The recent development has hopefully turned it into high productivity tool. We are proud that the operation and navigation of FreeMind is faster than that of MindManager because of one-click “fold / unfold” and “follow link” operations.

So you want to write a completely new metaphysics? Why don’t you use FreeMind? You have a tool at hand that remarkably resembles the tray slips of Robert Pirsig, described in his sequel to Zen and the Art of Motorcycle Maintenance called Lila. Do you want to refactor your essays in a similar way you would refactor software? Or do you want to keep personal knowledge base, which is easy to manage? Why don’t you try FreeMind? Do you want to prioritize, know where you are, where you’ve been and where you are heading, as Stephen Covey would advise you? Have you tried FreeMind to keep track of all the things that are needed for that?

See all Text Editors in Java

Text Processing Libraries jTextproc

jTextproc: A Java Text Processing Framework.

jTextproc is a framework that allows textprocessing to be integrated into any Java application in a generic manner. It represents an approbiate abstraction of the necessary elements and offers a generic interface to the application that needs a textprocessing service.

Whenever you want to process plain text and the result is again plain text jTextproc will deliver an abstraction and a framework for doing the job.

See all Text Processing Libraries in Java

UML & Modeling Tools fujaba

Fujaba is the acronym for ‘From Uml to Java And Back Again’ and originally aims to provide an environment for round-trip engineering using UML as visual programming language. During the last years, the environment has become a base for several research activities, e.g. distributed software, database systems, modelling mechanical and electrical systems and their simulation. Thus, the environment has become a project, where this source code is part of.

See all UML & Modeling Tools in Java

Validation Frameworks Commons Validator

Commons Validator provides the building blocks for both client side validation and server side data validation. It may be used standalone or with a framework like Struts.

See all Validation Frameworks in Java

Web Crawlers Heritrix

Heritrix is the Internet Archive’s open-source, extensible, web-scale, archival-quality web crawler project.

See all Web Crawlers in Java

Web Frameworks JAT

JAT is a flexible Java base-framework which can be easily extended to improve projects start-up time. JAT allows to build Web applications (J2EE) or standalone application (server, batch, etc.). JAT supplies the main basic functionalities of any Java application, such as:

  • High Business Object abstraction
  • Integration facilities (provided for DBMS, LDAP and open to any software product)
  • Authentication and user privileges management
  • MVC pattern implementation (with privileges management and page flow control)
  • HTML layout structure management (header, footer, menu, etc.)
  • HTML dynamic contents and facilities (form, report, paging)
  • Logging feautures
  • Help on-line utility
  • High configuration of all described functionalities
  • Administration and configuration GUI

See all Web Frameworks in Java

Web Mail Clients GatorMail

GatorMail is a servlet-based Webmail built on the Struts framework. It was originally developed to meet the needs of the University of Florida. Efficient interaction with the mail store along with a low support overhead are the goals of the project.

See all Web Mail Clients in Java

Web Servers Xerver

Xerver is an advanced free GNU GPL Web and FTP server.

See all Web Servers in Java

Web Services Tools and Libraries Caucho Burlap

“Burlap is a lightweight XML RPC protocol.” The Burlap web service protocol makes web services usable without requiring a large framework, and without learning yet another alphabet soup of protocols.

See all Web Services Tools and Libraries in Java

Web Testing Tools LoadSim

LoadSim is a web application load simulator. It allows you to create simulations and have those simulations run against your webserver.

See all Web Testing Tools in Java

Wiki Engines Bliki

The Bliki engine is a Java API and an Eclipse offline editor for Mediawiki (aka wikipedia.org) documents. API features:

  • Renders Wikipedia syntax to HTML.
  • Renders Wikipedia syntax to PDF, LaTeX, Docbook (only partial support).
  • Template support.
  • Configurable through WikiModel interface.
  • HTML to Wikipedia syntax converter.
  • Source code highligthing for: java, php, html, javascript,... Eclipse editor features:
  • Syntax highlighting.
  • Content outline and content assist.
  • Down-/upload articles from a wiki server.
  • HTML preview.

See all Wiki Engines in Java

Workflow Engines OpenSymphony OSWorkflow

OSWorkflow can be considered a “low level” workflow implementation. Situations like “loops” and “conditions” that might be represented by a graphical icon in other workflow systems must be “coded” in OSWorkflow.

See all Workflow Engines in Java

XML Binding Libraries Castor XML

Castor XML is an XML databinding framework. Unlike the two main XML APIs, DOM (Document Object Model) and SAX (Simple API for XML) which deal with the structure of an XML document, Castor enables one to deal with the data defined in an XML document through an object model which represents that data.

Castor XML can marshal almost any “bean-like” Java Object to and from XML. In most cases the marshalling framework uses a set of ClassDescriptors and FieldDescriptors to describe how an Object should be marshalled and unmarshalled from XML.

For those not familiar with the terms “marshal” and “unmarshal”, it’s simply the act of converting a stream (sequence of bytes) of data to and from an Object. The act of “marshalling” consists of converting an Object to a stream, and “unmarshalling” from a stream to an Object.

See all XML Binding Libraries in Java

XML Parsers Xerces

The Xerces Java Parser 1.4.4 supports the XML 1.0 recommendation and contains advanced parser functionality, such as support for the W3C’s XML Schema recommendation version 1.0, DOM Level 2 version 1.0, and SAX Version 2, in addition to supporting the industry-standard DOM Level 1 and SAX version 1 APIs.

See all XML Parsers in Java

XML User Interface Toolkits Laszlo

Laszlo is an open source platform for the development and delivery of rich Internet applications on the World Wide Web. It is released under the OSI-certified Common Public License. The Laszlo platform consists of the LZX language and the Laszlo Presentation Server. LZX is an XML and JavaScript description language similar in spirit to XUL and XAML. LZX enables a declarative, text-based development process that supports rapid prototyping and software development best practices. The Laszlo Presentation Server (LPS) is a Java servlet that compiles LZX applications into executable binaries for targeted run-time environments. Laszlo currently targets the Flash Player. The LPS compiles LZX applications into SWF bytecode for the Flash Player, serves and caches these compiled applications to any Web browser enabled with Flash 5 or later, and proxies application requests for back-end XML data sources and web services.

See all XML User Interface Toolkits in Java