I develop SquirrelJME!
SquirrelJME is a Java ME 8 Virtual Machine for embedded and Internet of Things devices. It has the ultimate goal of being 99.9% compatible with the Java ME standard.
This project is purely written in Java, with a small secondary C project, and is very easy to port to different hardware. For running on native hardware, a compiler handles the conversion of Java byte code to machine code (in an intermediate format). Any system specific APIs are accessed via standardized system calls that handle the logic the compiler cannot provide. An execution engine which is written in C is available and it offers a lightweight method of code execution.
Additionally, there is a port of SquirrelJME to RetroArch which enables the ability to play older J2ME software and games designed for flip-phones.