Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Что из собой представляет язык java и JVM?

ястреб ворон Мыслитель (7095), закрыт 1 год назад
На нëм говорят можно легко портировать приложения с виндовса на линукс.
На нëм пишут приложения для андроид.
И вирусы на нëм пишут для пк и андроида.


Но я не понимаю где взаимосвязь.
Получается виртуальная машина java встроена в ядро андроида ,и при запуске приложения , виртуальная машина выполняет код этого приложения.
А на компьютере мы компилируем приложения вместе с виртуальной машиной. И когда мы запускаем прилодение, мы сначала запускаем JVM , а потом саму программу.

Я правильно понял или нет?
Лучший ответ
Андрей Высший разум (483296) 1 год назад
Java - кроссплатформенный язык прикладного уровня.

Java-код компилируется в байт-код виртуальной машины Java (JVM) и этой виртуальной машиной выполняется. По мере набора статистики работы кода байт-код автоматический "на лету" перекомпилируется встроенным в JVM компилятором (JIT-компиляция) в код процессора и при следующих запусках программы выполняется уже процессорный код - без интерпретатора JVM.

В Android НЕТ JVM. И, собственно, языка Java нет. Есть разработанный Google компилятор языка, очень похожего на Java. Который, в силу похожести, тоже называют Java. Но никакого отношения к оригинальным Java и JVM от Sun/Oracle он не имеет.

У Google в разных версиях Android разный подход к работе виртуальной машины. Были версии, где работа виртуальной машины была похожа на JVM. И были версии, в которых загруженная в смартфон программа сразу компилировалась в процессорный код - перед первым запуском.
Остальные ответы
Максим Искусственный Интеллект (218908) 1 год назад
JVM устанавливается на произвольную ОС (Windows, Linux или Android), на ней запускаются программы, написанные [например] на Java и компилированные в Java-байткод.
ястреб воронМыслитель (7095) 1 год назад
А их в готовую нельзя?
То есть получить exe?

А вирусы когда пишут вместе с виртуальной машиной кидают?
Максим Искусственный Интеллект (218908) ястреб ворон, сам по себе Java-байткод не запустится на Windows без JVM. Только если он будет встроен в exe. Но Java это не лучший вариант для написания вирусов, хотя всё зависит от целей.
λ Искусственный Интеллект (263825) 1 год назад
<Я правильно понял или нет?>
Не совсем.
Упрощенная схема такая:
программа на языке (собственно текст) компилируется в в байт-код ( .class ), которые, в свою очередь, интерпретируются виртуальной машиной Java (JVM). Теоретически байт-код, созданный одним компилятором Java, должен работать одинаково на любом JVM, даже на другом компьютере или другой операционной системе.

другие языки тоже могут использовать байт-код.

Например на вход компилятора kotlinc поступают исходные файлы, причем не только файлы kotlin, но и файлы java. Это нужно чтобы можно было свободно ссылаться на Java из Kotlin, и наоборот. Сам компилятор прекрасно понимает исходники Java, но не занимается их компиляцией, на этом этапе происходит только компиляция файлов Kotlin. После полученные *.class файлы передаются компилятору javaс вместе с исходными файлами *.java. На этом этапе компилируются все java файлы, после чего становится возможным собрать вместе все файлы в jar (либо каким другим образом).
ястреб воронМыслитель (7095) 1 год назад
А их в компилировать в exe?

А вирусы когда пишут вместе с виртуальной машиной кидают?
λ Искусственный Интеллект (263825) ястреб ворон, Java class в exe не превратить, это противоречит парадигме Java "написано единожды - работает везде", программа на языке Java преобразуется компилятором в байт код виртуальной машины Java, такой подход позволяет запустить вашу скомпилированную программу везде где есть реализация (JVM) виртуальной машины Java. Хотя есть способы сделать exe файл. 1. Сделать обёртку для вашей программу, которая будет искать установленную java на компьютере, и после этого запускать ваше приложение. Например, одна из популярных программ такого рода - launch4j 2. Честно скомпилировать в native приложение - excelsior jet. Штука платная. Вирусы - отдельная сложная тема. Вирус можно сделать и с использованием обычного bat файла.
Александр Искусственный Интеллект (309679) 1 год назад
"из собой"
руская езыка такой сложны да?
Похожие вопросы