|
|
The GNU Compiler for the Javatm Programming Language
What is GCJ?
GCJ is a portable, optimizing, ahead-of-time compiler for the Java
Programming Language. It can compile:
- Java source code directly to native machine code,
- Java source code to Java bytecode (class files),
- and Java bytecode to native machine code.
Compiled applications are linked with the GCJ runtime,
libgcj, which provides the core class libraries, a
garbage collector, and a bytecode interpreter. libgcj can
dynamically load and interpret class files, resulting in mixed
compiled/interpreted applications.
Most of the APIs specified by "The Java Class Libraries" Second
Edition and the "Java 2 Platform supplement" are supported, including
collections, networking, reflection, and serialization. AWT is
currently unsupported, but work to implement it is in progress.
Debugging is supported using recent versions of the
GNU debugger, GDB.
A short tutorial on using GDB to debug
GCJ-compiled applications is available.
In addition to regular native programming, GCJ can be configured as a
cross-compiler, suitable for embedded systems programming.
GCJ is part of the GNU Compiler Collection (GCC). GCC,
GDB and related tools are
Free Software.
libgcj is slowly being merged with GNU Classpath. (You
can see the status of the merge
between libgcj CVS and GNU Classpath CVS. And the
status of the gui branch
merge.)
Many free software Java packages have been ported to work with GCJ. A
collection of such packages are in the rhug project. Both sources
and RPMs are available.
For javax.crypto support, we recommend the use of
GNU Crypto.
For JSSE
(including javax.net, javax.net.ssl,
and javax.security.cert support), we recommend
Jessie.
|
February 15, 2005
|
Thomas Fitzsimmons has checked in an implementation of libjawt, the
AWT Native interface. Among other things, this enables the JOGL
(OpenGL for Java) bindings to work.
|
|
February 1, 2005
|
We've merged GNU JAXP into the core. This includes many classes
in javax.xml, plus updated versions
of org.xml.sax and org.w3c.dom.
|
|
November 25, 2004
|
John David Anglin checked in a patch
to enable libjava to be built by default on hppa-unknown-linux-gnu.
|
|
November 22, 2004
|
We're pleased to announce that the gcj binary compatibility branch has
been merged to the trunk. This work includes a new ABI which allows
precompiled code to follow the binary compatibility rules of the Java
programming language.
|
|
September 21, 2004
|
Andreas Tobler imported the new javax.crypto,
javax.crypto.interfaces, javax.crypto.spec,
javax.net, javax.net.ssl,
javax.security.auth, javax.security.auth.callback,
javax.security.auth.login, javax.security.auth.x500,
javax.security.sasl and org.ietf.jgss
packages from the latest
GNU Classpath 0.11
developer snapshot release. These packages will be an official part of
then next major release. Extra crypto algorithms can be obtained
from the GNU Crypto
project, a full TLS implementation is provided by the
Jessie project.
|
|
July 16, 2004
|
AWT and Swing support continues to improve rapidly. Thomas Fitzsimmons of Red Hat
added support for the AWT 1.0 event model, still used by many web
applets. This means that Slime Volleyball now runs on GCJ and gcjwebplugin.
Here's the
evidence!
|
|
July 16, 2004
|
GCJ in the press! The July issue of Linux Journal
features an article on building the Eclipse IDE to native code using GCJ:
Eclipse
goes native. The July issue of Doctor Dobbs Journal also
features an article (not available online) on GCJ and the Compiled Native
Interface (CNI).
|
|
March 9, 2004
|
Thanks to Wes Biggs and the other GNU Regexp authors, Mark Wielaard
(for merging into Classpath) and Anthony Green (for merging into
libgcj), we now have support for java.util.regex. This
arrives a little too late for gcc 3.4, but it will appear in the next
major release.
|
|
January 22, 2004
|
Graydon Hoare has checked in
a
patch to implement Swing buttons. This is the first working Swing code,
a major improvement. See the screen shot.
|
|
January 9, 2004
|
Andrew Haley has checked in
a
large reorganization of -findirect-dispatch. This is
an important step toward the new binary compatibility ABI.
|
|
|
Less recent GCJ news
|
|