Done with GCJ
This page provides descriptions and links on projects that are using the GCJ runtime and compiler. If you would like your project to be listed here or know about a particular project, please add it to this list.
- Note:* Do not add links to companies or entities that offer or advertise non-Free Software.
Entries are listed in chronological order.
iRATE radio is a popular client/server mp3 player/downloader featuring collaborative filtering: you rate the tracks and it uses your ratings and other people's to guess what you'll like. iRATE uses GCJ together with the SWT toolkit to provide native binaries on multiple platforms, including Windows and GNU/Linux. iRATE has thousands of users, many of which use iRATE daily, making it perhaps the most widely distributed GCJ-compiled program to date. Contact: Taras.
XWT is the XML Windowing Toolkit. It lets you write remote applications -- applications that run on a server, yet can "project" their user interface onto any computer, anywhere on the Internet. When built with GCJ, it calls directly into the host's graphic routines and can be turned into, for example, an ActiveX control. Contact: Adam Megacz
- Modular Mining System is using gcj on an embedded StrongARM processor to control autonomous trucks in mining haulage systems. Note that they're not using libgcj, but rather an in-house runtime that they wrote.
jUSB is a free software Java API for USB, with an implementation that runs on recent GNU/Linux distributions. jPhoto provides basic command line and library support for the digital camera protocol on top of jUSB. The protocol is the new USB standard for talking to such devices called PTP. Contact: David Brownell
- PAL is a Java library for use in molecular evolution and phylogenetics. Basically, PAL includes classes and methods for computationally intensive statistics that are useful for the analysis of DNA sequences.
PAL 1.0 consists of 111 classes in 12 packages with more than 20,000 lines of code, all of which compiles nicely into native code using GCJ. Contact: Korbinian Strimmer
Swarm is a fine-grained distributed discrete event simulator. Swarm is mainly used for agent-based (bottom-up) modeling. Swarm is not written in Java, but it has a JNI layer. It was done with JNI at first for portability. And, since the simulator is not implemented in C++, it wasn't expected to see major benefits from CNI... The tested configuration relies on Kaffe as equipped with gcj support. On Intel Debian 2.2, up to 30% performance gains over Kaffe's jit3 were witnessed. Contact: Marcus G. Daniel
Tamanoir system is a complete framework that allows users to easily deploy and maintain distributed active routers on wide area networks. In the rapidly expanding field of active and programmable networks, Tamanoir is designed around a new kind of architecture dedicated to high performance active networking. Its implementation features a multi-threading approach to combine performance and portability of services. It's written in Java and standardly built using GCJ. Contact: Jean Patrick Gelas
Alejandro Rodríguez Gallego, at ICAI University (Spain) has spent two years developing a Java program to solve fluid dynamics. He says: I have recently tested my program with GCJ and I have got an incredible performance increase over HotSpot v2 (JDK 1.3 for linux). -50% RAM were needed and execution time reduced in -15%. GCJ will be the main compiler for my program.
Anthony Green and friends have set up rhug, a collection of free software Java packages set up to build with gcj. Both sources and RPMs are available. Contact: Anthony Green
Christophe Roux has been working on software for community communications over http. This program, WebMiel, uses Tomcat and has been working with gcj since mid-2002. The documentation is in French. Contact: Christophe Roux
The Freestyler Toolkit facilitates building with GCJ. It focuses on simplifying the construction of SWT Graphical User Interfaces and XmlRpc servants that sit before MySQL database backends. Contact: Erik Poupaert
Rimfaxe Web Server
Rimfaxe is a web server featuring compilation of jsp pages to .so libraries with gcj, SEDA-based architecture with non-blocking I/O, servlet 2.3 / JSP 1.2 implementation including filters and taglibs, and caching of static content. Contact: Lars Andersen
JGachine is a networked game engine for 2D multi-player (networked) games. JGachine is written in Java and C++. The games themselves are written in pure Java and can be loaded via network. Contact: Jens Thiele
- If PDF is electronic paper, then pdftk is an electronic staple-remover, hole-punch, binder, secret-decoder-ring, and X-Ray-glasses. Pdftk is a useful tool for handling PDF documents. Every PDF user should have one in the top drawer of his/her desktop.
Pdftk is also an example of how to use a library of Java classes in a stand-alone C++ program. Specifically, it demonstrates how GCJ and CNI allows C++ code to use iText's (itext-paulo) Java classes. Contact: Sid Steward
gcjwebplugin is a web browser plugin to execute Java (tm) applets. It supports Firefox, Galeon, Mozilla, Opera and many more browsers. Contact: Michael Koch
[[http://www.h2database.com/|H2 Database Engine]]
- H2 is a Java database engine. Apart from the usual features such as SQL, transactions, JDBC API, referential integrity, the database also supports clustering, views, subqueries, encryption, trigger and stored procedures. As HSQLDB, database can be operated in the embedded and server mode, with data kept in-memory or on disk. It is available as a native executable (using GCJ) and as a Java library.
JavaCompiler combines several programs and utilties with the goal, to be a powerful and easy to use tool for java to native compilation. It provides a GUI and the core is a recent GCJ version. Contact: [ javaCompilerfirstname.lastname@example.org : users mailinglist]
Mcj is a Midnight Commander clone expressed in Java as supported by the Gnu Compiler for Java (GCJ). No Java runtime or JDK is required. Mcj links to Ncurses via the Cygnus Native Interface. Doxygen provides nice documentation for reusable projects. See http://sourceforge.net/projects/mc-gcj
Micro-libgcj is a lightweight version of libgcj intended to provide a usable subset of Java's features while remaining small and self-contained. Whereas libgcj is intended to be a complete J2SE implementation based on GNU Classpath, micro-libgcj provides only the common subset of functionality required by most programs. An optional SWT port is also available. Contact: Joel Dice