If there is a problem with java bytecode, then that is hard to verify. You need multiple passes over the bytecode, until you've reached a steady state.
There is also the "issue" that Java bytecode allows arbitrary control flows with goto, while Java doesn't.
IMHO WebAssembly solves that better but I also need to admit that they could already learn from Java.