The Meaning of Life, the Universe, and Everything.
Recently, Oracle changed their license for personal and commercial use. Obviously Minecraft Java Edition is a commercial product developed by a commercial game studio. Will Mojang have to pay Oracle a fee to continue to develop Minecraft Java Edition?
Also, aside from Oracle's archived JDK releases and the OpenJDK, you can't download Java 8 anymore without giving Oracle all your personal/business information. I feel this is another big problem as that version is guaranteed to work with LWJGL, OptiFine, and Minecraft Forge. As far as I'm aware, they haven't been tested/patched to work beyond Java 10, and they still have issues even then. This may also stunt the growth of people getting into developing new mods.
The OpenJDK is great, but it's features and performance leave a lot to be desired. Also, Java is known for having security bugs, which are usually patched in updates. Java 8 is no longer getting updates. If you want updates, you have to go to Java 12 and potentially lose the ability to play Minecraft, at least without frequent crashes from things that Oracle removed in later versions of Java.
Call me paranoid, but I don't think it's going to be Microsoft killing the Java Edition of Minecraft, but Oracle, the people who make the software on which Minecraft runs.
This is also Oracle's recommended way to distribute Java apps:
Instead of relying on a browser-accessible system JRE, we encourage application developers to use the packaging options introduced with Java SE 9 to repackage and deliver their Java applications as stand-alone applications that include their own custom runtimes.
Also, I've heard that various mods have issues with Java 9 and later, which is a problem for the modders (Forge for 1.6.4 had issues with Java 8, which was fixed by the community before being fixed by the Forge developers, although they aren't likely to patch versions more than a few updates old in the future, hindering their use; vanilla itself, as well as my own non-Forge mods, weren't affected, even as I still compile to Java 6 code (the default set within MCP's configuration, which can be changed but I've never needed any newer features; likewise, I still use the Java 7 JDK since there is no reason to update. IIRC, the Forge 1.6.4-Java 8 issue was caused by Forge using buggy code which happened to work due to a bug in Java itself).
You'd also be surprised at how far the community can go to patch older versions; for example, the Windows 10 1809 update caused Classic versions to crash the computer due to an incompatibility with Windows itself but a patch was created so you can run it without crashing. I've even fixed an issue in 1.6.4 which might be due to some newer update (the player's view would jump after exiting a GUI, as if the game were still tracking the mouse cursor while inside it; the fix is to read the movement deltas for the first call afterwards without setting the x/z fields):
// Fixes a bug where mouse movement in a GUI screen changes the player's POV in-game
// after closing the GUI by the relative movement inside it.
public class MouseHelperFix extends MouseHelper
private boolean inhibitUpdates;
public void grabMouseCursor()
this.inhibitUpdates = true;
public void mouseXYChange()
this.inhibitUpdates = false;