Add support for .NET
When Java was initially designed, it was perceived as the JVM would sit on top of the operating system completely hiding it. The idea of 100% Java reflected this, by saying no direct access to the OS.
And this works well if you write an applet, if you are writing a servlet. However it does not work at all if you are trying to write an desktop application.
JNI is there but extremely difficult to use. And why should I write a C++ wrapper to access the operating system directly.
What we need is a simple access to the operating system. .NET provided this by allowing code to be declared unsafe and a language construct allows the declaration of an interface and you are in business.
This is what makes .NET a good platform to develop on Windows. A simple language (yes Java like) with enough hooks into the operating system.
Almost all Desktop applications will run on Windows only. Users are expecting the application to be indistinguishable from a native Windows application and for .NET applications that is the case.
I am not suggesting to make Java dependent on Windows, far from it.
But we need to embrace and extend Windows, not the other way around it. We need to make Java to embrace Windows. And in this moment Java is a second rate citizen on Windows. This is true even on Linux.
I realize this will open another religious debate. We need to push Java to the Windows desktop. We need to make Java integral part of Windows and Linux. A lot of people wrote libraries to use a Java application as a service, to show a Java application as the system tray etc. All of this should be part of a standard Java library.