Skip to content

Instantly share code, notes, and snippets.

@phanatagama
Last active July 3, 2025 08:58
Show Gist options
  • Select an option

  • Save phanatagama/ccc37a386bb051b6f75b4d30305f3030 to your computer and use it in GitHub Desktop.

Select an option

Save phanatagama/ccc37a386bb051b6f75b4d30305f3030 to your computer and use it in GitHub Desktop.
JDK vs JRE vs JVM vs Gradle

JDK vs JRE vs JVM vs Gradle

image

JDK

Java Development Kit merupakan paket yang berisi alat-alat untuk membangun program Java seperti javac (compiler), debugger, dan runtime(jre). Didalamnya terdapat JRE dan JVM.

JRE

Java Runtime Environment merupakan sebuah lingkungan/platform yang digunakan untuk menjalankan program Java. Didalamnya terdapat JVM.JRE berisi pustaka-pustaka yang diperlukan untuk menjalankan program JAVA tapi tidak memiliki alat seperti compiler atau debugger. Jika anda hanya ingin menjalankan program Java yang sudah dibuat sebelumnya, anda hanya perlu JRE (tanpa JDK).

JVM

Java Virtual Machine merupakan mesin virtual yang digunakan untuk mengeksekusi bytecode hasil kompilasi/compiler pada bahasa mesin. JVM juga bertanggungjawab untuk memory management, garbage collection, pengelolaan thread, dll.

Gradle

Gradle merupakan build tools yang digunakan untuk membantu mempermudah pengelolaan dependensi dan mempercepat proses build program Java. Gradle bersifat opsional, anda tidak wajib menginstall/menggunakan Gradle jika membangun program Java sederhana. Gradle berjalan pada JVM jadi anda memerlukan JDK atau JRE jika ingin menggunakannya.

Plugin vs Repository vs Dependencies (Gradle)

Plugin

Plugin digunakan untuk menambahkan fungsionalitas tambahan di atas fungsionalitas dasar Gradle. Contohnya, plugin "android" digunakan untuk memproses kode Android, plugin "java" untuk proyek Java, dan plugin "spring-boot" untuk proyek Spring Boot. Plugin memungkinkan proyek untuk menggunakan fitur-fitur khusus yang relevan dengan jenis proyeknya

Repository

Repository adalah lokasi atau server tempat Gradle mencari dan mengunduh dependensi yang dibutuhkan oleh proyek. Contohnya, repository "mavenCentral()" adalah repository yang digunakan oleh sebagian besar proyek, atau "jcenter()" yang dulunya digunakan oleh Android. Proyek perlu mengkonfigurasi repository agar dapat menemukan dan mengunduh dependensi yang diperlukan.

Dependencies

Dependencies adalah pustaka atau library yang digunakan dalam kode proyek. Contohnya, implementation 'androidx.appcompat:appcompat:1.8.2' adalah dependensi untuk library androidx.appcompat:appcompat versi 1.8.2. Dependencies diatur dengan menggunakan kata kunci implementation, api, testImplementation, dll., yang menentukan bagaimana dependensi digunakan dalam proyek

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment