Don't forget Android.
Good point! I was so focused on non Java languages on the JVM that I forgot that you can run the Java language on platforms other than the JVM (well, one anyway).
Incidentally, you can run a number of languages (including some that also run on the JVM) on the Android Dalvik VM. So if you run one of those on Dalvik you have incrementally replaced all of Java for your own code but can still call Androids Java APIs natively.