В чём кроссплатформенность JAVA?
Чем создание JVM под конкретные платформы «лучше», «проще», «продвинутее», «правильнее» написания компиляторов под те же платформы?
Есть два способа распространения программы на С++: в виде бинарника и в виде исходного кода.
В виде бинарника вам нужно будет каждую новую версию компилировать под разные версии Windows и разные дистрибутивы Linux. Не представляю, сколько такая программа должна стоить, чтобы это приносило доход.
Программа на Java распространяется в виде zip-архива с исходным кодом и требует от пользователя только установки дистрибутива Java на свой компьютер. Что на порядок удобнее для разработчика. А работать способна даже в Android (условно говоря).