micro-libgcj
Interesting experiment: micro-libgcj.
micro-libgcj is a lightweight version of the GCJ project’s runtime library (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 enough functionality to support core Java language semantics.
We started this project with the goal producing small, self-contained executables from a mix of Java and C++, targeting four platforms: Win32 (i386), Mac OS X (PPC), and Linux (i386 and amd64). GCC is an ideal tool for this purpose, since it is widely ported, and its Java and C++ compilers produce ABI-compatible object code.
We consider micro-libgcj to be reliably usable on all four supported platforms, but it has not had enough exposure to be considered stable. We hope to make a stable release once the current beta distribution has seen use in non-trivial applications.
Should be fun to experiment with. See also the gcj mailinglist thread.