Mesin Virtual Java

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.

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.

Pandangan umum

sunting

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

sunting

Mulai dari J2SE 5.0, perubahan-perubahan atas spesifikasi JVM dikembangkan dengan menggunakan basis JCP sebagai JSR 924.[1] Pada tahun 2006, perubahan atas spesifikasi untuk mendukung perubahan yang diusulkan terhadap format berkas class (JSR202[2]) telah dilakukan sebagai rilis pengelolaan dari JSR 924. Spesifikasi atas JVM dipublikasikan pula dalam bentuk buku,[3] 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

sunting

Di awal masa pakai platform Java, JVM dipasarkan sebagai teknologi peramban untuk membuat aplikasi Rich Web. Hingga 2018, 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.[4]

JVM dan interpreter JavaScript

sunting

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.[5]

Lihat pula

sunting

Catatan kaki

sunting

Referensi

sunting
  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. 
  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. 

Pranala luar

sunting