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

Почему JVM не является независимой от платформы, учитывая, что Java (язык) независим от платформы?

Просто интересно узнать, когда java становится независимой от платформы, есть ли какие-то конкретные причины, по которым JVM становится зависимой от платформы.

4b9b3361

Ответ 1

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

Вы можете написать JVM на других языках (например, Java или JavaScript), но в конечном итоге должно быть что-то, что может взаимодействовать с базовой ОС.

Ответ 2

JVM выполняет Java-код, но написан на языках платформы, таких как C/С++/ASM и т.д. JVM не написан на Java и, следовательно, не может быть независимой от платформы.

Ответ 3

Я обнаружил, что это был отличный ответ на вопрос:

JVM переводит байт-код в машинный язык

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

Язык машины зависит от ОС

Учитывая предыдущую информацию, должно быть проще вывести ответьте на вопрос. Поскольку JVM должен перевести байт-код в машинный язык, а так как машинный язык зависит от используемая операционная система, ясно, что JVM является платформой (операционной системы). Этот факт можно проверить, пытаясь скачать JVM - вам будет предоставлен список JVM, соответствующий разные операционные системы, и вы, очевидно, будете выбирать какую-то JVM предназначен для операционной системы, в которой вы работаете.

Цитата из Является ли зависимая от JVM-платформы?

Ответ 4

JVM должен быть зависимым от платформы, чтобы позволить вашей Java работать на конкретной платформе. JVM для Windows переводит вашу Java в разные системные вызовы, чем JVM для OS X.

Ответ 5

Потому что должен быть какой-то способ конвертировать приложения, не зависящие от платформы, вызовы Java для вызовов, совместимых с базовой ОС.

Ответ 6

Нет, JVM не являются независимыми от платформы. Фактически, они представляют собой среду времени выполнения платформы, предоставляемую поставщиком. Каждая платформа (Windows, UNIX, Mac и т.д.) Имеет собственную JVM для запуска приложений Java. Хотя байт-код поддерживает соединение с несколькими базами данных.

Подумайте о музыке, которую играют в MP3-плеере, проигрывателе компакт-дисков и старых верных кассетных плеерах (Boom Box). Выход всегда один и тот же, то есть музыка. Но вход (медиафайлы, т.е. Файлы MP3 для MP3-плееров, компакт-диски для CD-плееров и кассеты для кассетных плеч) различаются в зависимости от системы [здесь системы будут различными операционными системами, такими как Windows, UNIX, Mac и т.д.). Надеюсь, я смог решить вашу проблему.

Ответ 7

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

Ответ 8

JVM не является независимой от платформы

Ключ здесь в том, что JVM зависит от операционной системы - поэтому, если вы используете Mac OS X, у вас будет другая JVM, чем при использовании Windows или какой-либо другой операционной системы. Этот факт можно проверить, пытаясь загрузить JVM для вашей конкретной машины - при попытке загрузить его вам будет предоставлен список JVM, соответствующий различным операционным системам, и вы, очевидно, будете выбирать, какая из JVM предназначена для операционной системы, которая вы работаете.

Ответ 9

просто как - * - делает +.

Мы все знаем, что Java независима от платформы

но ОС, где мы пишем код, зависит от платформы

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

Ответ 10

Я думаю, что это может быть независимой от платформы, если многие разные языки (каждая из которых написана на определенной платформе), где они объединены, чтобы заставить ее динамически изменять свой собственный код. Но все это требует больших усилий и может привести к его переносимости.

Ответ 11

JVM преобразует байтовый код, который является универсальным для машинного кода, который зависит от машины, поэтому JVM зависит от платформы. Из-за этого байтового кода java не зависит от платформы.

Ответ 12

Нет, JVM зависит от платформы. Код, написанный на Java, не зависит от платформы. Если вы пишете Java-код в операционной системе Windows, вы можете запустить этот код в Linux или других операционных системах. Но JVM для Windows и Linux отличается. JVM находятся в JRE, и когда вы загружаете JRE из Oracle, он говорит JRE для Windows, Linux и других операционных систем.