JVM vs JRE
Java adalah bahasa pemrograman lintas platform. Ini juga menganut prinsip "tulis sekali, jalankan di mana saja". Program yang ditulis dalam Java dapat dikompilasi ke bytecode Java oleh compiler Java. Kemudian, bytecode dapat dijalankan di platform apa pun yang menjalankan JRE (Java Runtime Environment). JRE mencakup JVM (Java Virtual Machine), pustaka dasar (yang mengimplementasikan Java API) dan file pendukung lainnya. JVM adalah mesin komputasi abstrak yang bertindak sebagai mediator antara JRE platform tertentu dan kode Java.
Apa itu JVM?
JVM adalah jenis mesin virtual yang digunakan oleh mesin untuk menjalankan bytecode Java. Menurut Sun Microsystems (yang mengembangkan Java hingga dibeli oleh Oracle, baru-baru ini), ada lebih dari 4 miliar perangkat yang mendukung JVM di dunia. Lebih khusus lagi, Java Virtual Machine adalah mesin komputasi abstrak yang diimplementasikan pada perangkat keras standar dan sistem operasi. Salah satu fungsi penting yang disediakan oleh JVM adalah penanganan pengecualian otomatis. Biasanya, kumpulan pustaka standar menyertai JVM. Faktanya, JRE adalah bundel yang berisi JVM dan kelas yang mengimplementasikan Java API. JVM adalah komponen yang sangat penting, yang mengakomodasi sifat "kompilasi sekali, jalankan di mana saja" dari bahasa pemrograman Java. Selama JVM berjalan, kode Java Anda dapat berjalan di atasnya, apa pun platform yang digunakan di mesin. Inilah mengapa Java disebut bahasa lintas platform atau multi platform.
Apakah JRE itu?
JRE adalah lingkungan eksekusi di mana kode Java dijalankan. Biasanya, JRE terdiri dari JVM, kelas dasar standar (yang menerapkan API Java dasar) dan file pendukung lainnya. Jenis dan struktur JRE berbeda-beda bergantung pada sistem operasi dan arsitektur CPU. Ketika kode Java dijalankan, JRE akan berkomunikasi dengan sistem operasi, yang pada gilirannya akan berbicara dengan komponen perangkat keras yang sesuai. Memiliki JRE terinstal di sistem Anda adalah suatu keharusan untuk menjalankan kode java apa pun di mesin Anda. Namun, JRE tidak menyertakan kompiler, debugger, atau alat lain yang diperlukan untuk pengembangan program Java (seperti appletviewer dan javac). Jika Anda perlu mengembangkan program di Java, Anda harus memiliki JDK (Java Development Kit), yang juga menyertakan JRE.
Apa perbedaan antara JVM dan JRE?
Meskipun, dalam penggunaan sehari-hari, istilah JVM dan JRE digunakan secara bergantian, mereka memiliki perbedaan. JVM adalah mesin virtual yang berjalan di atas sistem operasi, sedangkan JRE adalah lingkungan eksekusi runtime. JVM adalah bagian dari JRE. Spesifikasi JVM bertindak sebagai penghubung antara implementasi JRE khusus platform dan pustaka Java standar. Oleh karena itu, JVM adalah entitas yang menyediakan abstraksi dari detail implementasi dalam kepada programmer. Dan itu bertanggung jawab untuk menafsirkan bytecode yang dikompilasi. Namun, JVM membutuhkan pustaka dasar dan file pendukung lainnya untuk mengeksekusi bytecode java. Namun terkadang, JRE hanya diidentifikasikan sebagai implementasi JVM.