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.