As others have pointed out, there's potentially a small difference in the case of Java, in that I believe the .class -> .o part of the compiler would still be buildable without an existing JVM, and perhaps even somewhat tested without one. And that's the part that's likely to break if other parts of the compiler are changed. I don't think Ada has an analog to that.
This is a historical aside, but interestingly enough Ada (GNAT) *did* have such a thing in the *very* early days, but it was decided that the trouble involved in maintaining and using the mechanism was much larger than other available bootstrap methods. The difference between this and Java is that the mechanism in question has other uses for Java, but none for Ada.