System level security seems to be the real solution to memory safety. Declaring invariants for an entire program gives you much more peace of mind than hoping there are no bugs in JVM.
Process separation is already a success story that eliminates who classes of exploits.