Подтвердить что ты не робот

Является ли перекрестная платформа Java?

Я хочу разработать кросс-платформенное приложение.

Является ли перекрестная платформа Java? Я имею в виду, могу ли я разработать приложение Java в Windows и использовать его в Mac OS X и Linux?

Если да, то как?

Я нахожу приложение, написанное на Java, имеет два установочных файла для Windows и других для Mac. Это меня смущает.

Любая иллюстрация или предложение будут высоко оценены.

4b9b3361

Ответ 1

Является ли Java кросс-платформой?

Java является кросс-платформой в том смысле, что скомпилированная Java-программа работает на всех платформах, для которых существует JVM. (Это относится ко всем основным операционным системам, включая Windows, Mac OS и Linux.)

Я имею в виду, что я могу разработать Java-приложение в Windows и использовать его в Mac и Linux?

Да, это возможно.

Этот (и аспект безопасности) является одним из основных преимуществ запуска программ на виртуальной машине.

Если да, то как?

  • Напишите ваше приложение в Java (в файлах .java)
  • Скомпилируйте приложение с помощью Eclipse или javac (в .class).
  • (необязательно) Свяжите ваши .class файлы в исполняемом файле (.jar)

Тот же самый файл .jar может быть распространен и выполнен в системах Windows, системах Mac и т.д.

Я нахожу приложение, написанное на Java, имеет два установочных файла для windows и других для mac. Это меня смущает.

Это связано с тем, что некоторые приложения полагаются на специфичные для платформы функции. Затем они объединяются с различными библиотеками, специфичными для платформы.

Если вы не разрабатываете приложение, которое само по себе использует специфичные для платформы функции (например, например, низкоуровневые системные вызовы), вы должны быть в состоянии отлично справиться с обычной Java.

Важный комментарий @Peter Lawrey:

Это может быть, когда приложение является независимым от платформы, программа установки - нет. например IntelliJ имеет три специфичных для платформы установщика, которые не написаны на Java, но имеют почтовый индекс, который вы можете просто распаковать на любой платформе, и он будет работать.

Ответ 2

Вы можете запускать приложения Java на каждом устройстве с JVM. Если это не так, вам не повезло.

Комментарий от Одеда важен. C и С++ имеют компиляторы на множестве устройств.

Базовый код Java не нужно перекомпилировать при переключении платформ.

C и С++ потребует, чтобы разработчик перекомпилировал приложение, прежде чем распространять его в целевой системе, но как только это сделает клиенты, они смогут работать без проблем.

Проблема настроек и настроек, специфичных для платформы, должна решаться независимо от того, какой язык вы выберете. Чем больше ваше приложение зависит от специфичных для платформы функций, тем менее портативным оно будет.

ОБНОВЛЕНИЕ:

Верните исходные слова в вопрос:

Я хочу разработать кросс-платформенное приложение.

Здесь цель - прямая цитата. Нет подробностей о веб-приложении, мобильном или настольном приложении.

Является ли перекрестная платформа Java? Я имею в виду, могу ли я разработать Java-приложение в Windows и использовать его в Mac OS X и Linux?

Определите "кросс-платформу". Похоже, что смещение здесь - "пропускная способность байтового кода". C/С++ не может этого сделать, но "переносимость исходного кода", безусловно, возможна, если вы придерживаетесь ANSI C/С++ и воздерживаетесь от использования расширений поставщиков.

Java-заявка на славу с самого начала всегда была переносимостью байтового кода. Это то, что получает JVM. Это не означает, что все ваше приложение будет переносимым, потому что вы, возможно, не смогли хорошо управлять другими зависимостями.

Если я заменил "C/С++" на "Java в этом блоке", то перекрестная платформа означает что-то другое. Я не могу поднять файл .exe или .so, скомпилированный для одной платформы и ожидающий запустить его на другом, но если я создайте .exe или .so для каждой платформы и сделайте их доступными, безусловно, можно сделать один и тот же исходный код исполняемым на нескольких платформах.

Если да, то как?

Если вы упаковали свое Java-приложение в качестве JAR, вы можете поместить его на любую понравившуюся вам платформу.

Если у вас есть несколько C/С++.exes для интересующих вас платформ, вы можете запустить его, когда вам нужно.

Ответ 3

Существует важная оговорка относительно переносимости Java. "Бизнес-логика" (не-UI-материал) довольно портативна, но для Java существует по меньшей мере полдюжины различных (и несовместимых) парадигм пользовательского интерфейса, поэтому, например, Java-код, написанный для работы на Android (даже игнорируя Android несовместимый JVM) не будет работать на телефоне Nokia, а код для одного не будет запускаться на настольном ПК.

Но нет другого языка, который бы делал лучше, насколько мне известно.

Ответ 4

Да, Java, написанная и скомпилированная на одной ОС, может работать в другой ОС. Для многих современных операционных систем доступны JVM.

Ответ 5

Приложения Java упакованы в файлы .jar. Они могут работать в любой операционной системе, которая реализует правильную среду выполнения Java для приложения, при условии, что пользователь установил, что JRE (JRE предоставляются пользователям бесплатно).

Точная процедура запуска приложения различна для каждой операционной системы.

В Java Development Kit предусмотрены библиотеки, позволяющие запускать системные функции (например, файловые операции, пользовательские интерфейсы), которые должны работать на любой ОС. Однако точное поведение может отличаться (аналогично тому, как веб-сайт может выглядеть по-разному в разных браузерах). Кроме того, приложения Java могут иметь "внешний вид", который точно не соответствует внешнему виду приложений, специально предназначенных для этой ОС.

Ответ 6

Это зависит от того, что вы подразумеваете под "кросс-платформенным". Java-код может быть скомпилирован в двоичный класс или файлы jar-байт-кода на любой ОС, поддерживающей JDK, и запускаться на любой платформе, поддерживаемой JRE. Тем не менее, большинство скомпилированных языков могут быть скомпилированы на любой платформе, при условии, что дизайнеры удовлетворяют ее. Java более легко переносится, чем, скажем, С++, но это не значит, что код С++ не сможет компилироваться на любой платформе.

Другими словами - не выбирайте свой язык только для этой отдельной функции. Выбор лучшего языка для вашего приложения был бы лучшим способом для этого. Возможно, язык сценариев будет лучше для вас. Возможно, задайте другой вопрос о том, какой язык использовать для решения вашей конкретной проблемы.

Ответ 7

Я написал небольшую игру на Java со звуком. Я использовал стандартную библиотеку (классы AudioInputStream и Clip). Программа отлично работает с Windows XP, НО у меня нет звуков с Windows Seven или Linux Ubuntu.

Java 6 была установлена ​​для всех этих ОС, и я скомпилировал программу со стандартным компилятором JAVAC.

Итак, Java не является такой "кросс-платформой".

Ответ 8

JAVA на самом деле не кросс-платформенный, потому что это просто дизайн, некоторые реализации JAVA могут быть кросс-платформенными, но это действительно зависит от разработчика JAVA.

SUN/Oracle делает стандартную реализацию JAVA для Windows, MAC и Linux, и если вы создаете программы со своим JDK, вы должны запускать программы со своей JRE, если вы попытаетесь запустить ее с другой JRE, могут возникнуть проблемы с совместимостью.

Это можно увидеть больше на мобильном телефоне, некоторые производители телефонов не будут полностью реализовывать JAVA, поскольку аппаратные ограничения или потому, что они хотят управлять программным обеспечением устройства, они несут логотип JAVA, но вы должны использовать их собственные JDK и эти программы не могли работать за пределами реализации JVM.

Еще одна проблема с JAVA заключается в том, что некоторые функции могут быть устаревшими, а то, что запускалось в определенной версии JRE, не могло работать в более новых версиях или работать по-другому.

Ответ 9

Большая проблема заключается в том, когда мы говорим о мобильных приложениях. Для десктопов ОС java может работать отлично, но для мобильных устройств разработчики могут, практически, создавать только для Android. Существуют такие инструменты, как Totalcross, который помогает разработчикам java создавать приложения для iOS и Android. Основное внимание уделяется предположению WORA на любой платформе, даже мобильной.