Gambaran umum arsitektur JVM. Kode sumber dikompilasi menjadi bytcode java. Setiap platform yang mendukung JVM dapat mengekseksi bytcode java tersebut.
Ikthisar dari arsitektur Java virtual machine (JVM) berdasarkan spesifikasi Java Virtual Machine Edisi Java SE 7.
**Mesin virtual java** (bahasa Inggris: ***Java Virtual Machine*** atau disingkat **JVM**) merupakan mesin virtual yang digunakan secara khusus mengeksekusi berkas bytecode java. Menurut Sun Microsystems (sekarang merupakan bagian dari Oracle Corporation), terdapat lebih dari 4,5 miliar lebih perangkat keras di dunia yang memiliki mesin virtual java di dalamnya.

Pandangan umum
--------------

JVM merupakan perangkat lunak yang dikembangkan secara khusus agar terlepas dari ketergantungan atas perangkat keras serta sistem operasi tertentu. JVM menyediakan lingkungan kerja yang dibutuhkan untuk menjalankan aplikasi berbasis java serta mengotomatisasikan fitur-fitur seperti penanganan kesalahan. JVM umumnya didistribusikan bersama dengan seperangkat pustaka dasar yang mengimplementasikan antarmuka pemrograman aplikasi java, *Application Programming Interface'* (API) yang dinamai sebagai Java Runtime Environment (JRE).

Program yang dieksekusi oleh JVM merupakan program berbasis bytecode yang umumnya ditulis dan dikompilasi dengan menggunakan bahasa pemrograman Java, tetapi saat ini bisa juga berasal dari bahasa pemrograman lain seperti: Jython (Python), Groovy, JRuby (Ruby).

Mesin virtual java standarnya dibuat oleh Oracle, tetapi mesin-mesin virtual java lainnya yang menggunakan merek dagang "JAVA" boleh dibuat oleh perusahaan lain sejauh produk-produk tersebut tunduk pada spesifikasi yang ditetapkan serta kesepakatan atas kontrak obligasi antara perusahaan pembuat dengan Oracle.

Lisensi
-------

Mulai dari J2SE 5.0, perubahan-perubahan atas spesifikasi JVM dikembangkan dengan menggunakan basis JCP sebagai JSR 924. Pada tahun 2006, perubahan atas spesifikasi untuk mendukung perubahan yang diusulkan terhadap format berkas class (JSR202) telah dilakukan sebagai rilis pengelolaan dari JSR 924. Spesifikasi atas JVM dipublikasikan pula dalam bentuk buku, dikenal sebagai "buku biru" (*blue book*). Isi kata pengantarnya adalah:

> Kami meyakini spesifikasi yang ada merupakan dokumen yang cukup lengkap atas implementasi JVM yang memungkinkan implementasi clean-room JVM dapat dilakukan dengan tetap menjaga kompatibilitasnya. Oracle menyediakan tes yang memverifikasi kebenaran atas fungsi dan operasionalitas atas JVM tersebut.
> 
> 

JVM milik Oracle dikenal sebagai *HotSpot*, sementara implementasi clean-room Java lainnya termasuk di dalamnya adalah Kaffe, IBM J9, dan Dalvik. Oracle secara ketat menjaga kontrol atas merek dagang Java, yang digunakan untuk mensertifikasi paket-paket perangkat lunak sejenis agar senantiasa selaras serta memiliki kompatibilitas penuh dengan spesifikasi yang telah ditetapkan.

JVM pada peramban web
---------------------

Di awal masa pakai platform Java, JVM dipasarkan sebagai teknologi peramban untuk membuat aplikasi Rich Web. Hingga 2018[update], kebanyakan peramban web dan sistem operasi menggabungkan peramban web tidak dikirim dengan plug-in Java, maupun mereka memperbolehkan pemuatan samping plugin non-Flash manapun. Plugin peramban Java sudah tidak digunakan lagi pada JDK 9.

### JVM dan interpreter JavaScript

Sejak Mei 2016, JavaPoly mengizinkan pengguna untuk memasukan pustaka Java yang tidak dimodifikasi, dan memanggilnya langsung dari JavaScript. JavaPoly memungkinkan situs web menggunakan perpustakaan Java yang tidak dimodifikasi, bahkan jika penggunanya tidak mempunyai Java terinstal di komputer mereka.

Lihat pula
----------

* Java
* Mesin virtual
* Bytecode

Catatan kaki
------------

* *Clarifications and Amendments to the Java Virtual Machine Specification, Second Edition* includes list of changes to be made to support J2SE 5.0 and JSR 45
* JSR 45, specifies changes to the class file format to support source-level debugging of languages such as JavaServer Pages (JSP) and SQLJ that are translated to Java

Referensi
---------

1. ↑  JSR 924, merujuk perubahan-perubajan atas spesifikasi JVM mulai dari J2SE 5.0
2. ↑  JSR 202, merujuk perubahan-perubajan atas spesifikasi format berkas class
3. ↑  *The Java Virtual Machine Specification* (edisi pertama dan kedua juga tersedia dalam jaringan)
4. ↑  "Oracle deprecates the Java browser plugin, prepares for its demise". *Ars Technica*. 28 January 2016. Diarsipkan dari versi asli tanggal 8 April 2016. Diakses tanggal 15 April 2016.  Parameter `|url-status=` yang tidak diketahui akan diabaikan (bantuan)
5. ↑  Krill, Paul (13 May 2016). "JavaPoly.js imports existing Java code and invokes it directly from JavaScript". *InfoWorld*. Diarsipkan dari versi asli tanggal 25 July 2016. Diakses tanggal 18 July 2016.  Parameter `|url-status=` yang tidak diketahui akan diabaikan (bantuan)

Pranala luar
------------

* (Inggris) The Java Virtual Machine Specification
* (Inggris) Java implementations di Curlie (dari DMOZ)
* (Inggris) Sun to build virtual machine for iPhone - ComputerWorld Diarsipkan 2008-05-08 di Wayback Machine.
* (Inggris) Java Virtual Machine Download Link
* (Inggris) JVM implementation in pure Java