The Java Development Kit (JDK) menyediakan fondasi utama yang digunakan untuk membangun semua aplikasi yang ditujukan untuk platform Java. JDK mencakup berbagai alat dan utilitas yang menjalankan berbagai tugas, termasuk mengompilasi kode sumber menjadi bytecode, mengemas aplikasi, menjalankan Java Virtual Machine (JVM), dan mengelola lingkungan runtime dari aplikasi Java.

Apa itu JDK?

JDK adalah paket perangkat lunak yang berisi berbagai alat dan utilitas yang memungkinkan kita untuk mengembangkan, mengemas, memantau, dan mendistribusikan aplikasi yang dibangun untuk berbagai platform Java standar, termasuk Java Platform, Standard Edition (Java SE); Java Platform, Micro Edition (Java ME); dan Java Platform, Enterprise Edition (Java EE).

Platform Java

Dulu, JDK memang secara spesifik ditujukan untuk bahasa pemrograman Java. Tapi sejak Java 7, diperkenalkan konstruksi khusus yang bikin bahasa-bahasa pemrograman lain seperti Groovy, Clojure, atau Kotlin jadi lebih mudah dikompilasi ke dalam bytecode Java dan dijalankan menggunakan Java Runtime Environment (JRE). Jadi, sekarang platform Java nggak cuma tentang bahasa Java aja, tapi juga mencakup berbagai bahasa pemrograman lain yang bisa pakai alat-alat dari JDK dan berjalan di atas Java runtime.

Komponen, alat, dan utilitas dalam JDK

Direktori bin dalam JDK menyediakan berbagai fitur dan alat yang membantu proses pengembangan perangkat lunak. Beberapa utilitas JDK yang cukup populer antara lain:

  • javac: Utilitas ini digunakan untuk mengompilasi kode sumber Java menjadi bytecode Java.
  • rmic: Membuat skeleton dan stub untuk penggunaan dalam Remote Method Invocation (RMI).
  • jar: Alat kompresi ini menggabungkan banyak file menjadi satu file Java ARchive (JAR). Utilitas jar menggunakan algoritma kompresi standar yang umum digunakan oleh alat zip lainnya.
  • javadoc: Alat ini bisa membaca nama kelas dan metode dalam sebuah kelas, serta memproses anotasi khusus untuk menghasilkan dokumentasi API (API) dari kode Java.
  • wsgen: Digunakan untuk menghasilkan berbagai artefak yang dibutuhkan oleh Java API for XML Web Services (JAX-WS).
  • javap: Utilitas ini digunakan untuk mendisassemblikan file class dan menghasilkan informasi tentang metode, properti, dan atribut dari komponen yang sudah dikompilasi.

JDK juga menyediakan berbagai alat untuk memantau perilaku runtime dari JVM, seperti Java Mission Control (JMC), Java Flight Recorder (JFR), dan VisualVM.

Perbedaan antara JDK dan JVM

Dalam direktori bin JDK, ada juga utilitas bernama java. Alat ini digunakan untuk menjalankan aplikasi Java yang punya metode main. Ketika kode sumber Java dikompilasi, hasilnya berupa bytecode. Bytecode ini adalah perantara antara kode sumber Java dan kode mesin tingkat rendah. Ketika utilitas java dijalankan, JVM akan dibuat dan menggunakan just-in-time (JIT) compiler untuk mengubah bytecode menjadi kode mesin. Proses konversi langsung dari bytecode ke instruksi mesin inilah yang membuat aplikasi Java bisa berjalan lintas platform dan bebas dari ketergantungan pada perangkat keras tertentu.

Perbandingan JDK vs. JRE

Saat mengunduh dan menginstal Java, biasanya kita diberi dua pilihan: JRE atau JDK. Program Java yang hanya butuh fitur standar dan lingkungan eksekusi sederhana bisa langsung jalan di JVM yang disediakan JRE. Tapi kalau kita butuh fitur tambahan seperti mengompilasi kode Java secara langsung atau membuat sertifikat otentikasi, maka kita wajib pakai JDK. JDK sudah termasuk JRE di dalamnya, tapi juga menyediakan banyak fitur tambahan di luar kemampuan dasar JRE.
Beberapa produk yang butuh JDK (bukan cuma JRE) antara lain Jenkins, Maven, IBM WebSphere, JMeter, Tomcat, dan Apache Karaf.

Java SE dan JDK

JDK dikemas bersama dengan semua library yang didefinisikan oleh Java SE. API standarnya mencakup paket-paket untuk utilitas, jaringan, input/output (I/O), kriptografi, dan pemrosesan XML. JDK juga menyediakan dukungan UI (User Interface) lewat paket-paket seperti Abstract Window Toolkit (AWT), Swing, dan JavaFX.

Library JDK

Namun, JDK tidak menyertakan dukungan bawaan untuk komponen seperti servlet, JavaServer Pages (JSP), dan Enterprise JavaBeans (EJB). Komponen-komponen ini adalah bagian dari Java EE, yang dibangun di atas Java SE. Demikian juga, JDK tidak punya dukungan khusus untuk pengembangan perangkat mikro (microdevice) seperti pada Java ME, meskipun Java ME tetap memanfaatkan semua fitur dan alat dari JDK. Intinya, JDK adalah kumpulan inti dari library, utilitas, dan alat yang digunakan oleh developer Java. Platform, API, dan framework Java lainnya dibangun dengan dasar yang disediakan JDK ini.

Bahasa Pemrograman Lain

Bahasa-bahasa pemrograman lain seperti Groovy, Clojure, Scala, dan Kotlin makin populer. Bahasa-bahasa ini semua berjalan di atas JDK dan menawarkan fitur-fitur yang bisa mengatasi kekurangan bahasa Java. Misalnya, Groovy unggul dalam scripting, Scala dan Clojure bisa menangani masalah skalabilitas, dan Kotlin menyederhanakan pengembangan aplikasi Android. Semua bahasa ini tetap berjalan di JVM dan memanfaatkan library standar serta fitur yang tersedia dalam platform Java.
Selama lebih dari 20 tahun, JDK sudah terbukti cukup tangguh untuk digunakan di lingkungan dan beban kerja ekstrem. Dengan kemampuannya mendukung bahasa-bahasa baru yang menambahkan fitur di luar kemampuan Java itu sendiri, JDK akan terus jadi pemain penting di dunia IT untuk waktu yang lama ke depan.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *