GCJ - an Independant Java Implementation

Guest Author - Julie L Baumler

GCJ is the GNU Compiler for Java produced under the auspices of the Free Software Foundation. The Free Software Foundation has been working on a free complete Unix-like operating system, called GNU – GNU's Not Unix, since 1983. GNU software is also heavily used by Linux to provide system libraries and commands. While Java has been freely available from Sun Microsystems since its inception in 1995, it wasn't until the middle of 2007 that Sun made most of their Java software available as free software in the sense that the Free Software Foundation and many computer programmers and users mean. While it was free to use, the license included a number of restrictions on how you could use it. In particular, you couldn't change the source code to suit your needs and freely redistribute it. GCJ was created to provide a totally free implementation of Java. With most of Java now covered under a free and open source license, some people may believe there is no need for a project like GCJ. However, I believe that as Java matures, efforts like this are even more important. For one thing, GCJ includes tools that allow programmers to easily mix C++ and Java code, which makes it easier to use existing libraries in either language. Additionally, if the Java language ever is put through the ANSI or ISO standards process, like many other languages have, it is important to have multiple implementations. Projects like GCJ also give interested people the opportunity to explore in depth how Java is implemented. For me, the main reason to use GCJ is to use projects that depend on it – generally because they have used CNI to extend Java with methods written in C++ or to use Java methods as C++ classes. You can find a list of some of these projects here.