Вы можете запускать приложения Java на любом устройстве, на котором установлена JVM.Если это не так, вам не повезло.
Комментарий от Одед важен.C и C ++ имеют компиляторы на многих устройствах.
Байт-код Java не нужно перекомпилировать при переключении платформ.
C и C ++ потребуют, чтобы разработчик перекомпилировал приложение перед распространением его на целевую систему, но как только это будет сделано, клиенты смогут работать без проблем.
Проблема платформыС конкретными настройками и настройками нужно работать независимо от того, какой язык вы выберете.Чем больше ваше приложение зависит от особенностей платформы, тем менее переносимым оно будет.
ОБНОВЛЕНИЕ:
Давайте вернемся к исходным словам в вопросе:
Я хочу разработать кроссплатформенное приложение.
Вот цель - прямая цитата.Нет подробностей о веб-приложении, мобильном или настольном приложении.
Является ли Java кроссплатформенным?Я имею в виду, могу ли я разработать Java-приложение для Windows и использовать его в Mac OS X и Linux?
Определить «кроссплатформенность».Похоже, смещение здесь "переносимость байтового кода".C / C ++ не может этого сделать, но «переносимость исходного кода», безусловно, возможна, если вы придерживаетесь ANSI C / C ++ и воздерживаетесь от использования расширений поставщиков.
Заявление Java о славе с самого начала всегдабыла переносимость байтового кода.Это то, что получает JVM.Это не означает, что все ваше приложение будет переносимым, потому что вы, возможно, плохо управляли другими зависимостями.
Если в этом блоке я заменил «C / C ++» на «Java», то кроссплатформенность означает нечто иное.не могу подобрать .exe или .so, скомпилированные для одной платформы, и ожидать запуска его на другой, но если я создаю .exe или .so для каждой платформы и делаю их доступными, то, безусловно, можно сделать один и тот же исходный код работающим на несколькихплатформы.
Если да, то как?
Если вы упаковали свое Java-приложение в виде JAR, вы можете установить его на любую платформу, какую пожелаете.
Если у вас есть несколько C / C ++ .exes для интересующих вас платформ, вы, безусловно, можете запустить их, когда вам нужно.