2014-09-04 3 views

ответ

3

Есть четыре элемента, участвующие в вашем вопросе:

  1. Исходный код Java для вашей программы
  2. Javac компилятор
  3. Байткода, что компилятор генерирует при компиляции исходного кода
  4. Виртуальная машина Java (JVM), которая запускает байт-код для запуска вашей программы. (Это программа, которая запускается при вводе java MyMainClass.)

Элементы 1 и 3 не зависят от платформы (если ваша программа не использует внешние библиотеки, зависящие от платформы). Элементы 2 и 4 зависят от платформы (то есть каждая платформа - Windows, Linux, Mac и т. Д.) Использует свою собственную версию javac и JVM).

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

+0

Спасибо @Ted Hopp Очистить объяснение – Linguistic

2

javac Нет, не зависит от платформы, каждая платформа имеет свой собственный исполняемый форму javac

т.е. вы не можете скопировать Linux JDK для окон и ожидать, что она работает

+2

@AnandMishra - Тогда, пожалуйста, поддержите ответ. Улучшение с комментарием лучше. – TheLostMind

+0

Спасибо @Jigar Joshi за ответ. – Linguistic

+0

downvoter оставить причину здесь –

0

Технически виртуальная машина не независимой от платформы, в той мере, в какой вы должны загружать определенные версии платформы этих платформ. Компилятор java создает байт-код (.class-файлы), который является независимым от платформы.

1

Компилятор java (реализация) Java не является независимым от платформы. Он компилирует исходный код на platform-independent bytecode, который выполняется зависит от платформы JVM.

0

В windows javac похоже, находится в формате .exe, что подразумевает, что оно зависит от платформы. На каждой платформе есть другой java-компилятор.

Смежные вопросы