Apa perbedaan antara JDK dan JRE?
Apa peran mereka dan kapan saya harus menggunakan satu atau yang lain?
Apa perbedaan antara JDK dan JRE?
Apa peran mereka dan kapan saya harus menggunakan satu atau yang lain?
Jawaban:
The JRE adalah Java Runtime Environment . Ini adalah paket dari segala yang diperlukan untuk menjalankan program Java yang dikompilasi, termasuk Java Virtual Machine (JVM), Java Class Library, java
perintah, dan infrastruktur lainnya. Namun, itu tidak dapat digunakan untuk membuat program baru.
The JDK adalah Java Development Kit , SDK fitur lengkap untuk Java. Ia memiliki semua yang dimiliki JRE, tetapi juga kompiler ( javac
) dan alat-alat (seperti javadoc
dan jdb
). Ia mampu membuat dan menyusun program.
Biasanya, jika Anda hanya peduli menjalankan program Java di komputer, Anda hanya akan menginstal JRE. Itu yang kamu butuhkan. Di sisi lain, jika Anda berencana untuk melakukan pemrograman Java, Anda perlu menginstal JDK sebagai gantinya.
Terkadang, bahkan jika Anda tidak berencana untuk melakukan pengembangan Java di komputer, Anda masih perlu menginstal JDK. Misalnya, jika Anda menggunakan aplikasi web dengan JSP, secara teknis Anda hanya menjalankan program Java di dalam server aplikasi. Mengapa Anda membutuhkan JDK? Karena server aplikasi akan mengubah JSP menjadi servlets Java dan perlu menggunakan JDK untuk mengkompilasi servlet. Saya yakin ada lebih banyak contoh.
Jawaban di atas (oleh Pablo) sangat tepat. Ini hanya informasi tambahan.
The JRE adalah, seperti namanya, sebuah lingkungan . Ini pada dasarnya sekelompok direktori dengan file yang berhubungan dengan Java, untuk menjelaskan:
bin/
berisi program yang dapat dieksekusi Java. Yang paling penting adalah java
(dan untuk Windows,javaw
), yang meluncurkan JVM. Ada beberapa utilitas lain di sini juga, seperti keytool
dan policytool
.conf/
memegang file konfigurasi yang dapat diedit pengguna untuk dimainkan oleh pakar Java.lib/
memiliki sejumlah besar file pendukung: beberapa .jar
s, file konfigurasi, file properti, font, terjemahan, sertifikat, dll. - semua "hiasan" dari Java. Yang paling penting adalah modules
, file yang berisi .class
file - file dari perpustakaan standar Java..dll
(Windows) atau .dylib
(macOS) atau .so
(Linux) di bawahbin/
atau lib/
dengan kode biner asli yang mendukung sistem.The JDK juga satu set direktori. Ini adalah superset dari JRE, dengan beberapa tambahan:
bin/
telah diperbesar dengan alat pengembangan. Yang paling penting dari mereka adalah javac
; lainnya termasuk jar
,javadoc
dan jshell
.jmods/
, yang menyimpan file JMOD untuk perpustakaan standar, telah ditambahkan. File-file ini memungkinkan perpustakaan standar untuk digunakan jlink
.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. JRE menyediakan perpustakaan, Java Virtual Machine (JVM), dan komponen lainnya untuk menjalankan applet dan aplikasi yang ditulis dalam bahasa pemrograman Java.
Dalam istilah awam: JDK adalah kakek JRE adalah ayah dan JVM adalah putra mereka. [yaitu JDK> JRE> JVM]
JDK = JRE + Alat pengembangan / debugging
JRE = JVM + Kelas Paket Java (seperti util, matematika, lang, awt, swing dll) + pustaka runtime.
JVM = Sistem pemuat kelas + area data runtime + Mesin Eksekusi.
Dengan kata lain jika Anda seorang programmer Java, Anda akan membutuhkan JDK di sistem Anda dan paket ini akan mencakup 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.
JVM:
The Java Virtual Machine (JVM) adalah mesin virtual yang menjalankan bytecode Java. JVM tidak mengerti kode sumber Java, itu sebabnya Anda mengkompilasi file * .java Anda untuk mendapatkan file * .class yang berisi bytecodes yang dapat dimengerti oleh JVM. Ini 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.
JDK dan JRE
Untuk menjelaskan perbedaan antara JDK dan JRE, yang terbaik adalah membaca dokumentasi Oracle dan lihat diagram:
Java Runtime Environment (JRE)
The 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.
Dari situs web resmi Java ...
JRE (lingkungan Java Runtime):
JDK (Java Development Kit)
Satu perbedaan dari perspektif debugging:
Untuk debug ke kelas sistem Java seperti String dan ArrayList, Anda memerlukan versi JRE khusus yang dikompilasi dengan "informasi debug". JRE yang disertakan di dalam JDK memberikan informasi ini, tetapi JRE reguler tidak. JRE reguler tidak termasuk info ini untuk memastikan kinerja yang lebih baik.
Apa itu informasi debug? Berikut ini penjelasan singkat yang diambil dari posting blog ini :
Kompiler modern melakukan pekerjaan yang cukup baik dengan mengkonversi kode tingkat tinggi Anda, dengan struktur kontrol yang diindentasi dengan baik dan bersarang dan variabel yang diketik secara sewenang-wenang ke dalam tumpukan besar bit yang disebut kode mesin (atau bytecode dalam kasus Java), satu-satunya tujuan darinya adalah untuk menjalankan secepat mungkin pada CPU target (CPU virtual JVM Anda). Kode Java dikonversi menjadi beberapa instruksi kode mesin. Variabel didorong di semua tempat - ke dalam tumpukan, ke register, atau sepenuhnya dioptimalkan. Struktur dan objek bahkan tidak ada dalam kode yang dihasilkan - mereka hanya abstraksi yang diterjemahkan ke offset kode-keras ke buffer memori.
Jadi, bagaimana seorang debugger tahu di mana harus berhenti ketika Anda memintanya untuk tidak masuk pada fungsi tertentu? Bagaimana cara mengatur untuk menemukan apa yang menunjukkan kepada Anda ketika Anda meminta nilai variabel? Jawabannya adalah - informasi debug.
Informasi debug dihasilkan oleh kompiler bersama dengan kode mesin. Ini adalah representasi dari hubungan antara program yang dapat dieksekusi dan kode sumber asli. Informasi ini dikodekan ke dalam format yang telah ditentukan dan disimpan di samping kode mesin. Banyak format seperti itu ditemukan selama bertahun-tahun untuk berbagai platform dan file yang dapat dieksekusi.
JVM, JRE, JDK - ini semua adalah tulang punggung bahasa Jawa. Setiap komponen bekerja secara terpisah. JDK dan JRE ada secara fisik tetapi JVM adalah mesin abstrak yang berarti tidak ada secara fisik.
JVM adalah subsistem dari JDK dan JRE yang digunakan untuk memeriksa kode perantara yang dikenal sebagai "bytecode". Pertama memuat "file kelas" (memiliki ekstensi .c) yang dihasilkan oleh Java compiler (javac) melalui classloader subsistem JVM dan lokasi memori rahasia (area kelas, stack, heap, dan register pc) sesuai dengan penggunaannya. Kemudian memeriksa semua bytecode untuk memastikan bahwa itu dikembalikan di Jawa dan semua aksesibilitas memori oleh jaringan. Pekerjaan penerjemah dimulai setelah itu di mana ia memeriksa seluruh program baris demi baris. Hasilnya akhirnya ditampilkan di konsol / browser / aplikasi melalui JRE (Java Runtime Environment) yang memiliki fasilitas runtime.
JRE juga merupakan subsistem dari JDK yang menyediakan fasilitas runtime seperti JVM, kelas, file yang dapat dieksekusi seperti file .jar, dll.
JDK adalah singkatan dari Java Development Kit. Ini berisi semua komponen yang diperlukan yang digunakan dalam pemrograman Java seperti kelas, metode, swing, AWT, paket, Java (interpreter), javac (compiler), appletviewer (applet application viewer), dll. Sebagai penutup, ini berisi setiap file yang diperlukan untuk pengembangan aplikasi, baik yang berdiri sendiri atau berbasis web.
JRE
JRE adalah akronim untuk Java Runtime Environment. Ini 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
Biasanya, ketika Anda hanya peduli menjalankan program Java di browser atau komputer, Anda hanya akan menginstal JRE. Itu yang kamu butuhkan. Di sisi lain, jika Anda berencana untuk melakukan pemrograman Java, Anda juga memerlukan JDK.
JVM, JRE dan JDK bergantung pada platform karena konfigurasi setiap OS berbeda. Tapi, Java adalah platform independen.
Java Virtual Machine (JVM) adalah sistem run-time yang mengeksekusi bytecode Java.
JRE adalah lingkungan (perpustakaan standar dan JVM) yang diperlukan untuk menjalankan aplikasi Java.
JDK termasuk alat pengembangan JRE plus command-line seperti kompiler dan debugger yang diperlukan atau berguna untuk mengembangkan applet dan aplikasi.
Berikut ini respons sederhana langsung dari Oracle http://docs.oracle.com/javase/7/docs/technotes/guides/
Java SE Runtime Environment (JRE)
JRE menyediakan perpustakaan, mesin virtual Java, dan komponen lain yang diperlukan bagi Anda untuk menjalankan applet dan aplikasi yang ditulis dalam bahasa pemrograman Java. Lingkungan runtime ini dapat didistribusikan kembali dengan aplikasi untuk membuatnya berdiri sendiri.
Java SE Development Kit (JDK)
JDK termasuk alat pengembangan JRE plus command-line seperti kompiler dan debugger yang diperlukan atau berguna untuk mengembangkan applet dan aplikasi.
Jika Anda ingin menjalankan program Java, tetapi tidak mengembangkannya, unduh Java Run-time Environment, atau JRE. Jika Anda ingin mengembangkannya, unduh Java Development kit, atau JDK
Mari kita sebut JDK adalah kit, yang mencakup hal-hal apa saja yang perlu dikembangkan dan dijalankan aplikasi java.
JDK diberikan sebagai lingkungan pengembangan untuk membangun aplikasi, komponen dan applet.
Ini berisi semua yang Anda butuhkan untuk menjalankan aplikasi Java dalam bentuk yang dikompilasi. Anda tidak perlu perpustakaan dan barang-barang lainnya. Semua hal yang Anda butuhkan dikompilasi.
JRE tidak dapat digunakan untuk pengembangan, hanya digunakan untuk menjalankan aplikasi.
JVM (Java Virtual Machine) adalah mesin abstrak. Ini adalah spesifikasi yang menyediakan lingkungan runtime di mana bytecode java dapat dieksekusi.
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 adalah akronim untuk Java Development Kit. Secara fisik ada. Ini berisi alat pengembangan JRE +
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 .
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. JVM, JRE dan JDK bergantung pada platform karena konfigurasi setiap OS berbeda. Tapi, Java adalah platform independen.
JRE
Ini berisi semua yang Anda butuhkan untuk menjalankan aplikasi Java dalam bentuk yang dikompilasi. Anda tidak perlu perpustakaan dan barang-barang lainnya. Semua hal yang Anda butuhkan dikompilasi.
JRE tidak dapat digunakan untuk pengembangan, hanya digunakan untuk menjalankan aplikasi.
Java SE Development Kit (JDK)
JDK termasuk alat pengembangan JRE plus command-line seperti kompiler dan debugger yang diperlukan atau berguna untuk mengembangkan applet dan aplikasi.
(Sumber: T&J GeeksForGeeks , Ikhtisar Platform Java )
Pemahaman yang jelas tentang istilah-istilah ini (JVM, JDK, JRE) sangat penting untuk memahami penggunaan dan perbedaannya.
JVM Java Virtual Machine (JVM) adalah sistem run-time yang mengeksekusi bytecode Java. JVM seperti komputer virtual yang dapat menjalankan serangkaian instruksi yang dikompilasi dan memanipulasi lokasi memori. Ketika kompiler Java mengkompilasi kode sumber, ia menghasilkan serangkaian instruksi yang sangat dioptimalkan yang disebut bytecode dalam file .class. JVM mengartikan instruksi bytecode ini dan mengubahnya menjadi kode khusus mesin untuk dieksekusi.
JDK Java Development Kit (JDK) adalah lingkungan pengembangan perangkat lunak yang dapat Anda gunakan untuk mengembangkan dan menjalankan aplikasi Java. Ini termasuk JRE dan seperangkat alat pemrograman, seperti kompiler Java, juru bahasa, appletviewer, dan penampil dokumen. JDK diimplementasikan melalui platform Java SE, Java EE, atau Java ME.
JRE Java Runtime Environment (JRE) adalah bagian dari JDK yang mencakup JVM, kelas inti, dan beberapa perpustakaan yang mendukung pengembangan aplikasi. Meskipun JRE tersedia sebagai bagian dari JDK, Anda juga dapat mengunduh dan menggunakannya secara terpisah.
Untuk pemahaman lengkap Anda dapat melihat Blog saya: Jdk Jre Jvm dan perbedaan
jdk diperlukan untuk mengkompilasi ke kode dan mengkonversi kode java ke kode byte sementara jre diperlukan untuk mengeksekusi kode byte.
JDK termasuk alat pengembangan JRE plus command-line seperti kompiler dan debugger yang diperlukan atau berguna untuk mengembangkan applet dan aplikasi.
JRE pada dasarnya adalah Java Virtual Machine tempat program Java Anda berjalan. Ini juga termasuk plugin browser untuk eksekusi Applet.
JDK adalah mesin abstrak. Ini adalah spesifikasi yang menyediakan lingkungan runtime di mana bytecode java dapat dieksekusi.
Jadi, pada dasarnya JVM <JRE <JDK sesuai @Jaimin Patel berkata.
Perbedaan antara JDK dan JRE adalah bahwa JDK adalah kit pengembangan perangkat lunak untuk java sementara JRE adalah tempat di mana Anda menjalankan program Anda.
misalkan, jika Anda seorang pengembang maka peran Anda adalah untuk mengembangkan program serta untuk menjalankan program. jadi Anda harus memiliki lingkungan untuk pengembangan dan pelaksanaan, yang disediakan oleh JDK.
misalkan, jika Anda seorang klien maka Anda tidak perlu khawatir tentang pengembangan. Anda hanya perlu, lingkungan untuk menjalankan program dan hanya mendapatkan hasil, yang disediakan oleh JRE.
JRE mengeksekusi aplikasi tetapi JVM membaca instruksi baris demi baris sehingga menjadi penerjemah.
JDK = JRE + Alat Pengembangan
JRE = JVM + Kelas Perpustakaan
JRE
JRE adalah akronim untuk Java Runtime Environment. Ini digunakan untuk menyediakan lingkungan runtime. Ini adalah implementasi JVM. Secara fisik ada. Ini berisi kumpulan perpustakaan + file lain yang digunakan JVM saat runtime.
Implementasi JVM juga secara aktif dirilis oleh perusahaan lain selain Sun Micro Systems.
JDK
JDK adalah akronim untuk Java Development Kit. Secara fisik ada. Ini berisi alat pengembangan JRE +.