Someone at MS is just pulling this out of their asses to try and cover that Microsoft has no clue what they are doing.
So they were able to easily query the code for a few thousand applications online that made this version check mistake. Big deal.
Pay attention. It's not a few applications. It's all Java apps. All of them. Anything written using OpenJDK is going to fail, because it checks the runtime version and throws an inappropriate error. Hell, if the JVM uses the same libraries as the JDK, those aren't even going to run. That's not a few thousand apps online, that's millions of apps, online and off, professional and amateur.
So the Java devs wrote shitty code, and it's Microsoft's fault? Nice. What a fucked up way of looking at things. It's clear you hate Microsoft for some obscure, personal, bullshit reason, but that's a huge stretch. All the Java guys had to do was look for "Windows" and the actual version number instead of "Windows 9" and there is no problem. But no, they had to be dumbfucks about it. It's not even easier than the better alternative - it takes MORE code to write it the shitty way instead of thinking for a whole minute and coming up with a better solution.
I imagine what actually happened at Redmond was something like this: MS dev starts installing applications, testing compatibility, and starts seeing messages like this "This program is not compatible with Windows 9x". Oh shit. Test some more apps, and "Runtime error - wrong OS version, please use Windows XP or later". MS dev can only sit there and say "Oh fuck". Turns out thousands of shitty programmers everywhere used the dumbest possible version discovery method (that they almost certainly didn't even need in the first place) and the only fix for all of these programs is a fix in their own code.
I'm not sure if you're getting this or not. Java apps built on OpenJDK will put a runtime error on Windows 9. All of them. Microsoft didn't write that code, Sun did (at least I'm pretty sure they did). Microsoft has had API's for accurately getting the version number since Windows has been a thing, and Java doesn't make them available.
I honestly can't think of a way for Microsoft to work around Java's shitty libraries, or any other program parsing the OS version from text in this stupid way, in any way except to rename the OS.
Compare this to how many applications out that that have broken because of other minor OS changes combined with bad programming. I've seen piles of that myself, and Microsoft never bothered this hard to keep compatibility for any of those.
Really? MS is the only OS that does care about compatibility!
Microsoft has always bent over backwards for compatibility. That's the one thing that sets them apart from OSX and Linux, and why businesses love Windows so much. We're running a critical Windows 98 application on Windows 7 right now, with no compatibility issues whatsoever (not even compatibility mode). Try updating OSX and after two or three revisions shit starts breaking, because Apple doesn't give a shit about backwards compatibility. Not so with Windows.
Plus, with every Windows release, a software maker can get a beta version of the OS and test their software on it. If their software is intrinsically broken, all they have to do is contact MS, tell them what's up, and MS will put in a workaround. Even if that workaround only works for that specific software, they'll do it. The most famous example of that was SimCity 2000, which had code written in I think XP specifically for it.
This isn't like when programmers rely on a bug in an API to perform their tasks. MS can get around that by spoofing the bug, and they do it all the time. No, there is no way for Windows to know that Java is throwing a runtime error based on shitty logic, so MS can't fix that problem. In a perfect world, MS could say "fuck em, it's their bug, they need to fix it" and release Windows 9. Java apps wouldn't work, Oracle would release patched versions of OpenJDK (they'd have to do it for ALL versions that were released), and Java programmers would fix their damn apps using the patched versions of OpenJDK.
Unfortunately, there is no way that is going to happen. And who is going to lose millions of sales because, through no fault of their own, Java doesn't work on Windows 9? That's right, Microsoft is. It's possible Oracle could patch the JVM to catch that code, but you can bet your ass Java programmers aren't the only ones who have been this retarded. So the only real solution is to avoid the problem altogether, and skip version 9.