And that's also why if something that was MIT/BSD/Apache changes licenses, some developers will start gnawing off their leg before the trap even springs shut.
In defense of Java, the canonical JRE/JDK implementation has been OpenJDK for quite some time now, and there are many non-Oracle spins of it.
As for .NET, while it is currently good and I personally enjoy it, I'm a little wary on it too. Unlike with Java, where decision making is distributed in some fashion (as far as I can tell), Microsoft has retained nearly total control of .NET, and key parts of the ecosystem like the debugger are still under non-OSS licensing terms.
Users are in the habit, perhaps pressured, to accept the terms with without due consideration by a qualified lawyer. C.f. the South Park "human centipede" episode.
I suspect that the best solution, society-wise, is to enact stronger consumer protection laws that override these EULAs.
Behold, the lawn mower cometh... I believe is the reality.