2016-09-26 3 views
4

Я ищу JVM в деталях, чтобы понять его работу и правильно работать с языком программирования Java, поэтому, насколько важна JVM для компиляции Java, кроме операционной системы.Может ли Java компилировать исходный код без JVM?

+2

JVM необходим для запуска скомпилированного кода. Компилятор - это единственное, что вам нужно для компиляции кода, JVM не имеет ничего общего с компиляцией. Опять же, компилятор написан на Java, поэтому вам нужно JVM для запуска компилятора. –

+1

Вы можете написать Java-компилятор в C, если хотите. Java все равно. –

+2

Важно, поскольку компилятор Java написан на Java. Не обязательно, но это так. – EJP

ответ

-3

JVM не скомпилирует код, он интерпретирует.

Java является интерпретированным и скомпилированным языком. Компилятор Java, «Javac» создает байт-код, который не зависит от платформы. Этот байт-код, мы можем сказать, общий, т. Е. Он не включает детали машинного уровня, которые являются специфическими для каждой платформы. Инструкции в этом байтовом коде не могут быть напрямую запущены процессором. Поэтому необходима какая-то другая «программа», которая может интерпретировать код и давать инструкции уровня машинного процессора, которые он может выполнить. Эта программа является «JVM» (виртуальная машина Java). Обратите внимание, что JVM является специфичным для платформы.

-3

JVM не имеет ничего общего с компиляцией кода Java. JVM несет полную ответственность за запуск уже скомпилированного кода. Существует множество программ для компиляции Java-кода, например, компилятор javac, включенный в JDK, или интегрированные компиляторы в большинстве IDE, и есть отдельные инструменты компиляции, такие как gradle или ant.

+2

«Отдельный инструмент компиляции' javac', написанный на Java, ваш ответ неверен. – EJP

+0

Это было предложение derp с моей стороны, я отредактировал ответ. –

+3

Здесь нет и других вещей. 'gradle' и' ant' не являются отдельными инструментами компиляции, все они полагаются на 'javac' и добавляют разрешение и управление зависимостями. Все широко используемые и современные Java-компиляторы фактически работают на JVM. –

2

При использовании основного компилятора Javac вам понадобится JVM.

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


Теоретически, компилятор это единственное, что вам нужно для компиляции Java-кода. Фактически, the JVM knows nothing of the Java programming language, только байт-код, сгенерированный из компиляторов. JVM позволяет компьютеру запускать Java-программы и не влияет на процесс компиляции.

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

Если вы использовали компилятор, написанный на другом языке, вам не понадобится JVM для компиляции кода.