Jawaban:
The Java Virtual Machine (JVM) adalah mesin virtual yang menjalankan bytecode Java. JVM tidak mengerti kode sumber Java; itu sebabnya Anda perlu mengkompilasi *.java
file Anda untuk mendapatkan *.class
file yang berisi bytecodes dipahami oleh JVM. Itu juga entitas yang memungkinkan Java menjadi "bahasa portabel" ( tulis sekali, jalankan di mana saja ). Memang, ada implementasi spesifik JVM untuk sistem yang berbeda (Windows, Linux, macOS, lihat daftar Wikipedia ), tujuannya adalah bahwa dengan bytecode yang sama mereka semua memberikan hasil yang sama.
Untuk menjelaskan perbedaan antara JDK dan JRE, yang terbaik adalah membaca dokumentasi Oracle dan lihat diagram:
Java Runtime Environment (JRE)
Java Runtime Environment (JRE) menyediakan perpustakaan, Java Virtual Machine, dan komponen lainnya untuk menjalankan applet dan aplikasi yang ditulis dalam bahasa pemrograman Java. Selain itu, dua teknologi penyebaran utama adalah bagian dari JRE: Java Plug-in, yang memungkinkan applet dijalankan di browser populer; dan Java Web Start, yang menyebarkan aplikasi mandiri melalui jaringan. Ini juga merupakan dasar untuk teknologi di Java 2 Platform, Enterprise Edition (J2EE) untuk pengembangan dan penyebaran perangkat lunak perusahaan. JRE tidak mengandung alat dan utilitas seperti kompiler atau debugger untuk mengembangkan applet dan aplikasi.
Java Development Kit (JDK)
JDK adalah superset dari JRE, dan berisi semua yang ada di JRE, ditambah alat-alat seperti kompiler dan debugger yang diperlukan untuk mengembangkan applet dan aplikasi.
Perhatikan bahwa Oracle bukan satu-satunya yang menyediakan JDK.
OpenJDK adalah implementasi open-source JDK dan basis untuk Oracle JDK. Hampir tidak ada perbedaan antara Oracle JDK dan OpenJDK.
Perbedaannya dinyatakan dalam blog ini :
T: Apa perbedaan antara kode sumber yang ditemukan dalam repositori OpenJDK, dan kode yang Anda gunakan untuk membangun Oracle JDK?
A: Sangat dekat - proses build kami untuk rilis Oracle JDK dibangun di OpenJDK 7 dengan menambahkan hanya beberapa bagian, seperti kode penempatan, yang mencakup implementasi Oracle dari Java Plugin dan Java WebStart, serta beberapa sumber tertutup ketiga komponen pihak seperti rasterizer grafis, beberapa komponen pihak ketiga sumber terbuka, seperti Badak, dan beberapa bagian di sana-sini, seperti dokumentasi tambahan atau font pihak ketiga. Ke depan, tujuan kami adalah untuk membuka sumber semua bagian dari Oracle JDK kecuali yang kami anggap fitur komersial seperti JRockit Mission Control (belum tersedia di Oracle JDK), dan mengganti komponen pihak ketiga yang terbebani dengan alternatif sumber terbuka untuk mendapatkan paritas yang lebih dekat. antara basis kode.
Pembaruan untuk JDK 11 - Sebuah artikel dari Donald Smith mencoba untuk membedakan perbedaan antara Oracle JDK dan Oracle OpenJDK: https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-java-11- dan kemudian
JVM adalah Java Virtual Machine - sebenarnya menjalankan Java ByteCode.
JRE adalah Java Runtime Environment - berisi JVM, di antaranya, dan itulah yang Anda perlukan untuk menjalankan program Java.
JDK adalah Java Development Kit - itu adalah JRE, tetapi dengan javac (yang Anda butuhkan untuk mengkompilasi kode sumber Java) dan alat pemrograman lainnya ditambahkan.
OpenJDK adalah implementasi JDK tertentu.
other things
terkandung dalam JVM. Apakah mereka ? Apakah artikel ini sepenuhnya menjawab pertanyaan itu - javabeat.net/what-is-the-difference-between-jrejvm-and-jdk
JDK (Java Development Kit)
Java Developer Kit berisi alat yang diperlukan untuk mengembangkan program Java, dan JRE untuk menjalankan program. Alat termasuk kompiler (javac.exe), peluncur aplikasi Java (java.exe), Appletviewer, dll ...
Compiler mengubah kode java menjadi kode byte. Peluncur aplikasi Java membuka JRE, memuat kelas, dan memanggil metode utamanya.
Anda memerlukan JDK, jika Anda ingin menulis program sendiri, dan mengkompilasinya. Untuk menjalankan program java, JRE sudah cukup.
JRE ditargetkan untuk mengeksekusi file Java
yaitu JRE = JVM + Kelas Paket Java (seperti util, matematika, lang, awt, swing dll) + pustaka runtime.
JDK terutama ditargetkan untuk pengembangan java. Yaitu Anda dapat membuat file Java (dengan bantuan paket Java), kompilasi file Java dan jalankan file java.
JRE (Java Runtime Environment)
Java Runtime Environment berisi JVM, perpustakaan kelas, dan file pendukung lainnya. Itu tidak mengandung alat pengembangan seperti kompiler, debugger, dll. Sebenarnya JVM menjalankan program, dan menggunakan pustaka kelas, dan file pendukung lainnya yang disediakan di JRE. Jika Anda ingin menjalankan program java apa pun, Anda harus menginstal JRE di sistem
Java Virtual Machine menyediakan cara bebas platform untuk mengeksekusi kode; Itu berarti mengkompilasi sekali di mesin apa pun dan menjalankannya di mana saja (mesin apa pun).
JVM (Java Virtual Machine)
Seperti yang kita semua tahu ketika kita mengkompilasi file Java, output bukan file 'exe' tapi itu file '.class'. File '.class' terdiri dari kode byte Java yang dapat dimengerti oleh JVM. Java Virtual Machine menginterpretasikan kode byte ke dalam kode mesin tergantung pada sistem operasi dan kombinasi perangkat keras yang mendasarinya. Ia bertanggung jawab untuk semua hal seperti pengumpulan sampah, pemeriksaan batas array, dll ... JVM bergantung pada platform.
JVM disebut "virtual" karena menyediakan antarmuka mesin yang tidak tergantung pada sistem operasi yang mendasari dan arsitektur perangkat keras mesin. Kemandirian dari perangkat keras dan sistem operasi ini merupakan landasan dari nilai program Java yang pernah ditulis sebelumnya.
Ada beberapa implementasi JVM di sana. Ini mungkin berbeda dalam hal-hal seperti kinerja, keandalan, kecepatan, dll. Implementasi ini akan berbeda di daerah-daerah di mana spesifikasi Java tidak menyebutkan bagaimana mengimplementasikan fitur-fitur, seperti bagaimana proses pengumpulan sampah bekerja tergantung pada JVM, spesifikasi Java tidak tentukan cara spesifik untuk melakukan ini.
Sebuah mesin virtual Java (JVM) adalah mesin virtual yang dapat mengeksekusi Java bytecode. Ini adalah komponen eksekusi kode dari platform perangkat lunak Java.
The Java Development Kit (JDK) merupakan produk Oracle Corporation ditujukan untuk pengembang Java. Sejak Java diperkenalkan, Java Kit Pengembangan Perangkat Lunak (SDK) sejauh ini telah digunakan secara luas.
Java Runtime Environment , juga disebut sebagai Java Runtime, Runtime Environment
OpenJDK (Open Java Development Kit) adalah implementasi gratis dan open source dari bahasa pemrograman Java. Ini adalah hasil dari upaya Sun Microsystems dimulai pada tahun 2006. Implementasinya dilisensikan di bawah GNU General Public License (GPL) dengan pengecualian yang menghubungkan.
JVM adalah mesin virtual yang dijalankan oleh kode Java
JRE adalah lingkungan (perpustakaan standar dan JVM) yang diperlukan untuk menjalankan aplikasi Java
JDK adalah JRE dengan alat dan dokumentasi pengembang
OpenJDK adalah versi open-source dari JDK, tidak seperti JDK umum yang dimiliki oleh Oracle
JDK (Java Development Kit):
JRE (Java Runtime Environment)
Java Runtime Environment berisi JVM, perpustakaan kelas, dan file pendukung lainnya. JRE ditargetkan untuk mengeksekusi file Java.
JVM (Java Virtual Machine)
JVM menerjemahkan kode byte ke dalam kode mesin tergantung pada sistem operasi dan kombinasi perangkat keras yang mendasarinya. Ia bertanggung jawab untuk semua hal seperti pengumpulan sampah, pemeriksaan batas array, dll ... Java Virtual Machine menyediakan cara independen platform untuk mengeksekusi kode.
JDK - Mengkompilasi java ke ByteCode. Terdiri dari para debugger, Compiler dll
javac file.java // Is executed using JDK
JVM - Menjalankan kode byte. JVM adalah yang membuat platform java independen. Tetapi JVM bervariasi untuk platform.
JRE - JVM bersama dengan java runtime libraries untuk menjalankan program java.
Aspek lain yang layak disebut:
JDK (java development kit)
Anda akan membutuhkannya untuk tujuan pengembangan seperti namanya.
Sebagai contoh: perusahaan perangkat lunak akan menginstal JDK di komputer mereka karena mereka perlu mengembangkan perangkat lunak baru yang melibatkan kompilasi dan menjalankan program Java mereka juga.
Jadi kita dapat mengatakan bahwa JDK = JRE + JVM.
JRE (lingkungan run-time java)
Diperlukan untuk menjalankan program Java. Anda tidak dapat mengkompilasi program Java dengannya.
Misalnya: pengguna komputer biasa yang ingin menjalankan beberapa game online maka akan membutuhkan JRE di sistemnya untuk menjalankan program Java.
JVM (mesin virtual java)
Seperti yang Anda ketahui, jalankan bytecodes. Itu membuat platform Java independen karena mengeksekusi .class
file yang Anda dapatkan setelah Anda mengkompilasi program Java terlepas dari apakah Anda mengkompilasinya pada Windows, Mac atau Linux.
Buka JDK
Seperti yang saya katakan di atas. Sekarang JDK dibuat oleh perusahaan yang berbeda, salah satunya yang merupakan open source dan gratis untuk penggunaan umum adalah OpenJDK, sementara beberapa lainnya adalah JRockit JDK dari Oracle Corporation atau IBM JDK.
Namun mereka semua mungkin tampak sama untuk pengguna umum.
Kesimpulan
Jika Anda seorang programmer Java, Anda akan membutuhkan JDK di sistem Anda dan paket ini akan menyertakan JRE dan JVM juga, tetapi jika Anda adalah pengguna normal yang suka bermain game online maka Anda hanya perlu JRE dan paket ini tidak akan memiliki JDK di dalamnya .
Dengan kata lain JDK adalah kakek JRE adalah ayah dan JVM adalah putra mereka.
Java adalah bahasa dan termasuk sintaks yang ketat dan sangat diketik dengan yang Anda harus sangat akrab sekarang.
Platform Java 2, Edisi Standar, juga dikenal sebagai J2SE, disebut platform dan termasuk kelas-kelas dalam paket java.lang dan java.io, antara lain. Itu adalah blok bangunan tempat aplikasi Java dibangun.
Java Virtual Machine, atau JVM, adalah mesin virtual perangkat lunak yang menjalankan kode Java yang dikompilasi. Karena kode Java yang dikompilasi hanya bytecode, JVM bertanggung jawab untuk mengkompilasi bytecode itu ke kode mesin sebelum menjalankannya. (Ini sering disebut Just In Time Compiler atau JIT Compiler.) JVM juga menangani manajemen memori sehingga kode aplikasi tidak harus.
Java Development Kit, atau JDK, adalah dan tetap menjadi bagian dari perangkat lunak yang digunakan pengembang Java untuk membuat aplikasi Java. Ini berisi kompiler bahasa Java, generator dokumentasi, alat untuk bekerja dengan kode asli, dan (biasanya) kode sumber Java untuk platform untuk mengaktifkan kelas platform debugging.
Java Runtime Environment, atau JRE, adalah dan tetap menjadi bagian dari perangkat lunak yang diunduh pengguna akhir untuk menjalankan aplikasi Java yang dikompilasi. Ini termasuk JVM tetapi tidak mengandung alat pengembangan apa pun yang dibundel dalam JDK. JDK, bagaimanapun, memang mengandung JRE.
JVM: Spesifikasi yang menjelaskan cara / sumber daya untuk menjalankan program java. Sebenarnya mengeksekusi kode byte dan membuat platform java independen. Dengan demikian, berbeda untuk platform yang berbeda. JVM untuk windows tidak dapat berfungsi sebagai JVM untuk UNIX.
JRE: Implementasi JVM. (JVM + run time libraries)
JDK: JRE + java compiler dan alat penting lainnya untuk membangun program java dari awal
JVM : ini sebenarnya berarti juru kode byte. Ini tergantung platform. Sebagai contoh: pada platform Windows, presesi ' java.exe ' atau ' javaw.exe ' adalah proses jvm.
JDK : adalah toolkit yang berisi pustaka dan utilitas yang diperlukan untuk mengembangkan dan menjalankan program / aplikasi java
JRE : adalah lingkungan eksekusi untuk application.ie java, itu hanya mendukung dependensi runtime termasuk jvm untuk program yang dikompilasi. Jika kita ingin mengkompilasi program java, kita perlu jdk.
JVM: mesin virtual java. memberi tahu mesin apa yang harus dilakukan dengan Kode Java. Anda tidak dapat mengunduh JVM apa adanya. Muncul dikemas dalam beberapa komponen lainnya.
JRE: Beberapa komponen lain yang disebutkan di atas adalah JRE. Ini adalah JVM + guci lain untuk membuat lingkungan runtime
JDK: mengandung JRE (yang pada gilirannya berisi JVM). Setelah Anda mendapatkan JDK Anda tidak perlu menginstal JRE dan JVM secara terpisah. Ini berisi kompiler yang mengkompilasi file .java Anda ke file .class
JVM
JVM (Java Virtual Machine) adalah mesin abstrak. Ini adalah spesifikasi yang menyediakan lingkungan runtime di mana bytecode java dapat dieksekusi. JVM tersedia untuk banyak platform perangkat keras dan perangkat lunak.
JRE
JRE adalah akronim untuk Java Runtime Environment. Digunakan untuk menyediakan lingkungan runtime. Ini adalah implementasi dari JVM. Secara fisik ada. Ini berisi kumpulan perpustakaan + file lain yang digunakan JVM saat runtime.
JDK
JDK adalah akronim untuk Java Development Kit. Secara fisik ada. Ini berisi alat pengembangan JRE +.
Tautan: - http://www.javatpoint.com/difference-between-jdk-jre-and-jvm
Singkatnya:
Jika Anda ingin mengembangkan di java, Anda memerlukan JDK, tetapi jika Anda hanya ingin menjalankan java, Anda memerlukan JRE.
JVM Java Virtual Machine, sebenarnya mengeksekusi bytecode java. Ini adalah blok eksekusi pada platform JAWA. Itu mengkonversi bytecode ke kode mesin.
JRE Java Runtime Environment, menyediakan persyaratan minimum untuk menjalankan aplikasi Java; itu terdiri dari Java Virtual Machine (JVM), kelas inti, dan file pendukung.
JDK Java Development Kit, memiliki semua alat untuk mengembangkan perangkat lunak aplikasi Anda. Ini adalah sebagai JRE + JVM
Open JDK adalah implementasi Java Platform yang gratis dan open source.
Dalam istilah awam: - JDK = JRE + Alat pengembangan / debugging , di mana JDK adalah paket lengkap kami untuk bekerja dengan Java, dari membuat kompilasi hingga menjalankannya. Di sisi lain JRE hanya menjalankan kode (Byte Code).
Catatan: - Apakah kita menginstal JDK atau JRE, JVM akan dibundel dengan paket-paket dan JVM adalah bagian di mana kompiler JIT mengubah kode byte menjadi kode spesifik mesin.
Baca saja artikel tentang JDK, JRE, JVM dan JIT
JDK : Paket lengkap yang Anda butuhkan untuk menulis dan menjalankan kode java
OpenJDK : Implementasi JDK yang independen untuk membuatnya lebih baik
JVM : Mengubah kode Java menjadi bytecode dan memberikan spesifikasi yang memberitahu bagaimana kode Java dikompilasi, dimuat, diverifikasi, diperiksa untuk kesalahan dan dieksekusi.
JRE : Implementasi JVM dengan mana beberapa perpustakaan Java digunakan untuk Menjalankan program
JRE mengeksekusi aplikasi tetapi JVM membaca instruksi baris demi baris sehingga menjadi penerjemah.
JDK = JRE + Alat Pengembangan
JRE = JVM + Kelas Perpustakaan
JVM disingkat Java Virtual Machine , JVM adalah komponen utama arsitektur java. JVM ditulis dalam bahasa pemrograman C. Kompiler Java menghasilkan kode byte untuk JVM. JVM membaca kode byte memverifikasi kode byte dan menghubungkan kode dengan ibrary.
JRE disingkat Java Runtime Environment . itu menyediakan lingkungan saat runtime. Secara fisik ada. Ini berisi JVM + kumpulan perpustakaan (jar) + file lain.
JDK disingkat Java Development Kit . itu mengembangkan aplikasi java. Dan juga Debugging dan pemantauan aplikasi java. JDK berisi alat pengembangan JRE + (javac, java)
OpenJDK OpenJDK adalah versi open source dari sun JDK. Oracle JDK adalah JDK resmi Sun.