Зачем нужна «кроссплатформенность» в Java?
1) только вот C/C++ софт придётся компилировать самому под все целевые платформы;
2) платформо-зависимые части кода в большинстве случаев уже собраны в библиотеки;
3) JavaFX или собственная реализация Swing UI. Даже голый Swing причесать так, чтобы он выглядел практически одинаково на всех платформах, особого труда не составит;
4) то же с .net (то, что Microsoft пихает его рантайм в Windows — не заслуга дотнета как такового. А заодно поинтересуйтесь, как у дотнета обстоят дела со стабильностью API);
5) с джарами и не бывает возни, достаточно установить JRE.

В общем, вы просто не умеете готовить кошек^W кофе o)
java для создания desctop приложений с GUI  мертва(ИМХО < 1% ).
Java это в основном ентерпрайз и андроид.
Кросплатформеность компляции(под какие ОС написаны компиляторы) оказывает влияния на развития и популярность языка программирования.