* Java compiler (.java to .class) Gcj can also compile .java to .class. It currently does not handle inner classes, but that is being actively worked on. It is written in C, so is reasonably fast. It generates reasonable good bytecode. And of course being able to use the same compiler for .java to .class and .java to native has its advantages.
* JVM (with or without JIT) libgcj (the run-time library for gcj) now includes an interpreter and ClassLoader. * Compiler (to native executable) "GCC, the Gnu Compiler Collection comes with GCJ, the Gnu Compiler for Java" was already mentioned. * Debugger (jdb equiv) Gdb can debug code produced by Gcj. Cygnus also wrote support for Gdb to debug other VMs using JVMDI. This has not been released, because the Gdb internals were changed at the same time, and no-one has had time to re-integrate the changes. Sigh. We can probably get Cygnus to release the old code, if someone wants to look into getting this stuff working with the current Gdb internals. (A non-trivial job.) Note there are at least three implementations of the standard Java classes: Kaffe, classpath, and libgcj. This means some unfortunate duplicate work. One problem is different licenses. That does not preclude someone donating the same or similar code to all of them, but it does preclude whole-sale merging. -- --Per Bothner [EMAIL PROTECTED] http://www.bothner.com/~per/