LLJVM
This is a massive improvement over the old way of doing this -- use a $LANG compiler targeting 32-bit MIPS and then emulate that processor in Java (not too hard as the memory models match up).
One of the big challenges facing the JRuby community today is the prevalence of gems with C extensions. For gems where the C source is available, this might be a viable route to compatibility.
For anyone trying to crack that problem, this is definitely worth deeper investigation.
There's also NestedVM, http://nestedvm.ibex.org/, which works my using gcc to cross compile to MIPS and then convert the MIPS machine code into a Java class file.
Someone actually just posted the llvm development mailing list with a backend they wrote for LLVM so that it can generate JVM bytecode (in the same way in generates x86, PPC, etc.) and it uses this lib, cool stuff.
Is this an alternative to JNI?
C on the JVM? Dear me!