JVM vs JRE
Java adalah bahasa pemrograman lintas platform. Itu juga menganut prinsip "tulis sekali, jalankan di mana saja". Program yang ditulis dalam Java dapat dikompilasi ke dalam bytecode Java oleh compiler Java. Kemudian, bytecode dapat dieksekusi pada platform apa pun yang menjalankan JRE (Java Runtime Environment). JRE termasuk JVM (Java Virtual Machine), perpustakaan dasar (yang mengimplementasikan Java API) dan file pendukung lainnya. JVM adalah mesin komputasi abstrak yang bertindak sebagai mediator antara platform khusus JRE dan kode Java.
Apa itu JVM?
JVM adalah jenis mesin virtual yang digunakan oleh mesin untuk mengeksekusi bytecode Java. Menurut Sun Microsystems (yang mengembangkan Java sampai dibeli oleh Oracle, baru-baru ini), ada lebih dari 4 miliar perangkat berkemampuan JVM di dunia. Lebih khusus lagi, Java Virtual Machine adalah mesin komputasi abstrak yang diimplementasikan pada perangkat keras dan sistem operasi standar. 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-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, terlepas dari platform yang digunakan di mesin. Inilah sebabnya mengapa Java disebut bahasa lintas platform atau multi-platform.
Apa itu JRE?
JRE adalah lingkungan eksekusi di mana kode Java dijalankan. Biasanya, JRE terdiri dari JVM, kelas dasar standar (yang mengimplementasikan API Java dasar) dan file pendukung lainnya. Jenis dan struktur JRE bervariasi tergantung 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. Menginstal JRE di sistem Anda adalah suatu keharusan untuk menjalankan kode java apa pun di mesin Anda. Namun, JRE tidak menyertakan compiler, 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 ke programmer. Dan bertanggung jawab untuk menafsirkan bytecode yang dikompilasi. Namun, JVM membutuhkan pustaka dasar dan file pendukung lainnya untuk mengeksekusi bytecode java. Namun terkadang, JRE hanya diidentifikasi sebagai implementasi dari JVM.