- HotSpot
- AegisVM
- Apache Harmony
- CACAO
- Dalvik
- IcedTea
- IKVM.NET
- Jamiga
- JamVM
- Jaos
- Jato VM
- JC
- Jelatine JVM
- JESSICA (Java-Enabled Single-System-Image Computing Architecture)
- Jikes RVM
- JNode (operating system)
- JOP (Аппаратная реализация JVM)
- Juice
- Jupiter
- JX
- Kaffe
- leJOS
- Maxine (meta-circular JVM being developed by SUN)
- Mika VM
- Mysaifu (Windows CE / Windows Mobile)
- NanoVM
- SableVM
- Squawk virtual machine (for embedded system and small devices)
- SuperWaba
- TakaTuka (for wireless sensor network devices)
- TinyVM
- VMkit of Low Level Virtual Machine
- Wonka VM
- Xam
Краткая Java-терминология
• Виртуальная машина (virtual machine) – абстрактное вычислительное устройство, которое может быть реализовано разными способами: аппаратно или программно. Компиляция в набор команд виртуальной машины происходит почти так же, как и компиляция в набор команд микропроцессора.
• Java-платформа (Java Platform) – виртуальная машина Java и стандартные классы составляют Java-платформу. Java-платформа предоставляет программам унифицированный интерфейс независимо от операционной системы, на которой они работают.
• Java Remote Method Invocation (JRMI) – интерфейс вызова удаленных методов. Распределенная объектная модель, определяющая, каким образом производится вызов удаленных методов, работающих на другой виртуальной машине Java.
• Java Runtime Environment (JRE) – среда исполнения Java. Подмножество Java Development Kit, предназначенное для конечных пользователей. JRE состоит из виртуальной машины Java (JVM), стандартных классов Java и вспомогательных файлов.
• Java Virtual Machine (JVM) – виртуальная машина Java, часть среды исполнения Java, выполняющая интерпретацию Java байт-кода. Java Virtual Machine специфицируется набором команд байт-кода, набором регистров, стеком, сборщиком мусора и пространством хранения методов.
• Java байт-код (Java bytecode) – машинно-независимый код, который генерирует Java-компилятор. Байт-код выполняется Java-интерпретатором. Виртуальная машина Java полностью стековая: не требуется сложная адресация ячеек памяти и большое количество регистров. Поэтому команды JVM короткие, большинство из них имеет длину 1 байт, отчего команды JVM называют байт-кодами (bytecodes), хотя имеются команды длиной 2 и 3 байта (средняя длина команды составляет 1,8 байта).
Программа, написанная на языке Java, переводится компилятором в байт-код. Байт-код записывается в одном или нескольких файлах, может храниться во внешней памяти или передаваться по сети. Это особенно удобно благодаря небольшому размеру файлов с байт-кодом. Полученный в результате компиляции байт-код можно выполнять на любом компьютере, имеющем систему, реализующую JVM (в не зависимости от типа какого-либо конкретного процессора и архитектуры ПК). Так реализуется принцип Java: «Write once, run anywhere» – «Написано однажды, выполняется где угодно».
• Java-апплеты (Java applets) – Java-приложения, доступ к которым можно получить из веб-браузера.
Java Community Process (JCP) — сформированный в 1998 году формальный процесс, который позволяет заинтересованным лицам участвовать в формировании будущих версий спецификаций платформ языка Java.
JSR
Основа JCP — так называемые JSR (Java Specification Request/Запрос на Спецификацию Java), формальные документы, описывающие спецификации и технологии, которые предлагается добавить к Java платформе.
Разработка JSR включает следующие шаги:
- Запрос (Initiation). Спецификация предлагается членами сообщества, и, путем голосования, принимается Исполнительным Комитетом (JCP Executive Committee). В это время JSR присваивается номер.
- Черновик для сообщества (Community Draft). После принятия JSR формируется экспертная группа, которая разрабатывает первый черновик спецификации. Этот черновик выносится на рассмотрение Исполнительного Комитета и членов сообщества. По итогам обсуждения выносится решение о том, переходить к следующей стадии, или необходим новый доработанный Community Draft.
- Открытый черновик (Public Draft). Черновик, дошедший до этой стадии, выкладывается в свободный доступ, и любой человек, имеющий доступ к сети Интернет, может рассмотреть его и высказать свое мнение. Экспертная группа использует эти отзывы для дальнейшего совершенствования спецификации. После этого доработанная спецификация выносится на голосование Исполнительного Комитета для окончательного утверждения. К этому времени становятся доступными Эталонная реализация (reference implementation) и набор автоматических тестов Technology Compatibility Kit (TCK).
- Поддержка (Maintenance). Окончательная версия спецификации, эталонной реализации и TCK обновляется по мере поступления запросов на доработку, уточнение и расширение. Некоторые запросы могут потребовать пересмотра спецификации экспертной группой и выпуска новой версии, или даже формирования нового JSR.