Instalasi #
Java berjalan di atas JVM (Java Virtual Machine), yang berarti kamu perlu menginstal JDK (Java Development Kit) — bukan hanya JRE (Java Runtime Environment) — agar bisa mengompilasi dan menjalankan program. Instalasi Java sedikit lebih kompleks dibanding bahasa lain karena ada beberapa distribusi JDK dari vendor berbeda, serta kebutuhan mengatur variabel lingkungan JAVA_HOME agar tools seperti Maven, Gradle, dan IDE bisa menemukan JDK dengan benar. Artikel ini memandu instalasi Java 21 (LTS terbaru) di Windows, macOS, Ubuntu, dan Fedora, sekaligus menjelaskan cara mengelola banyak versi Java di satu mesin menggunakan SDKMAN.
Memilih Distribusi JDK #
Sebelum menginstal, penting memahami bahwa Java bukan hanya satu produk dari satu vendor. Ada banyak distribusi JDK yang semuanya kompatibel karena mengikuti spesifikasi yang sama, tetapi berbeda dari sisi lisensi, dukungan, dan optimasi:
| Distribusi | Vendor | Lisensi | Catatan |
|---|---|---|---|
| Oracle JDK | Oracle | Berbayar* | Perlu lisensi untuk production |
| OpenJDK | Oracle / komunitas | GPL v2 | Referensi implementasi, gratis |
| Eclipse Temurin | Adoptium (Eclipse) | GPL v2 | Direkomendasikan untuk umum |
| Amazon Corretto | Amazon | GPL v2 | Dioptimasi untuk AWS |
| Microsoft Build | Microsoft | GPL v2 | Dioptimasi untuk Azure |
| Azul Zulu | Azul Systems | GPL v2 | Dukungan komersial tersedia |
| GraalVM | Oracle | GPL v2 | Native image compilation |
Untuk keperluan belajar dan development umum, gunakan Eclipse Temurin dari Adoptium — distribusi OpenJDK yang dikelola komunitas, gratis, dan tersedia di semua platform. Jika bekerja di lingkungan cloud tertentu (AWS, Azure), pertimbangkan distribusi yang dioptimasi vendor tersebut.
Untuk versi, selalu pilih versi LTS (Long-Term Support) untuk project serius. Versi LTS saat ini adalah Java 21 (rilis September 2023, dukungan hingga 2028) dan Java 17 (masih banyak digunakan). Hindari versi non-LTS (22, 23, dll) untuk production karena siklus dukungannya hanya 6 bulan.
timeline
title Rilis dan Dukungan Java LTS
2018 : Java 11 LTS
: Dukungan hingga 2026
2021 : Java 17 LTS
: Dukungan hingga 2029
2023 : Java 21 LTS
: Dukungan hingga 2028
2025 : Java 25 LTS
: DirencanakanInstalasi di Windows #
Menggunakan Installer Resmi (Eclipse Temurin) #
Cara termudah di Windows adalah menggunakan installer .msi dari Adoptium:
1. Buka https://adoptium.net/
2. Pilih "Eclipse Temurin 21 (LTS)"
3. Download installer .msi untuk Windows x64
4. Jalankan installer — centang opsi:
✓ "Add to PATH"
✓ "Set JAVA_HOME variable"
Ini menghemat langkah konfigurasi manual.
5. Klik Next → Install → Finish
Menggunakan winget (Windows Package Manager) #
Jika kamu lebih suka command line:
# Install Eclipse Temurin 21
winget install EclipseAdoptium.Temurin.21.JDK
# Atau versi 17 jika dibutuhkan
winget install EclipseAdoptium.Temurin.17.JDK
Mengatur JAVA_HOME secara Manual #
Jika installer tidak mengatur otomatis, atau kamu menginstal JDK dari sumber lain:
# Buka System Properties via PowerShell (sebagai Administrator)
# Atau: Control Panel → System → Advanced System Settings → Environment Variables
# Tambahkan JAVA_HOME (sesuaikan path dengan lokasi instalasi kamu)
[System.Environment]::SetEnvironmentVariable(
"JAVA_HOME",
"C:\Program Files\Eclipse Adoptium\jdk-21.0.3.9-hotspot",
"Machine"
)
# Tambahkan %JAVA_HOME%\bin ke PATH
$currentPath = [System.Environment]::GetEnvironmentVariable("Path", "Machine")
[System.Environment]::SetEnvironmentVariable(
"Path",
"$currentPath;%JAVA_HOME%\bin",
"Machine"
)
Setelah itu, tutup dan buka ulang PowerShell atau Command Prompt agar perubahan environment variable terbaca.
Verifikasi #
java -version
javac -version
echo %JAVA_HOME%
Output yang diharapkan:
openjdk version "21.0.3" 2024-04-16 LTS
OpenJDK Runtime Environment Temurin-21.0.3+9 (build 21.0.3+9-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.3+9 (build 21.0.3+9-LTS, mixed mode, sharing)
javac 21.0.3
C:\Program Files\Eclipse Adoptium\jdk-21.0.3.9-hotspot
Instalasi di macOS #
Menggunakan Homebrew (Direkomendasikan) #
Homebrew adalah cara paling praktis untuk mengelola JDK di macOS:
# Install Homebrew jika belum ada
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install Eclipse Temurin 21
brew install --cask temurin@21
# Atau versi 17
brew install --cask temurin@17
Mengatur JAVA_HOME di macOS #
macOS menyediakan helper /usr/libexec/java_home yang mengembalikan path JDK secara dinamis. Tambahkan ke shell config kamu:
# Untuk Zsh (default di macOS Catalina ke atas) — edit ~/.zshrc
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 21)' >> ~/.zshrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.zshrc
source ~/.zshrc
# Untuk Bash — edit ~/.bash_profile
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 21)' >> ~/.bash_profile
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bash_profile
source ~/.bash_profile
Keunggulan menggunakan /usr/libexec/java_home -v 21 dibanding hardcode path: jika versi patch JDK diupdate (misal dari 21.0.2 ke 21.0.3), kamu tidak perlu mengubah konfigurasi.
Verifikasi #
java -version
javac -version
echo $JAVA_HOME
Melihat Semua JDK yang Terinstal di macOS #
/usr/libexec/java_home -V
# Output contoh:
# Matching Java Virtual Machines (2):
# 21.0.3 (x86_64) "Eclipse Adoptium" - "OpenJDK 21.0.3" /Library/Java/JavaVirtualMachines/temurin-21.jdk/...
# 17.0.11 (x86_64) "Eclipse Adoptium" - "OpenJDK 17.0.11" /Library/Java/JavaVirtualMachines/temurin-17.jdk/...
Instalasi di Ubuntu / Debian #
Menggunakan apt (OpenJDK dari Repository Ubuntu) #
Cara termudah untuk Ubuntu adalah via apt — tersedia di repository resmi:
# Update package list
sudo apt update
# Install OpenJDK 21
sudo apt install openjdk-21-jdk -y
# Verifikasi
java -version
javac -version
Menggunakan Repository Adoptium (Eclipse Temurin) #
Jika kamu ingin distribusi Temurin khusus:
# Install dependensi
sudo apt install -y wget apt-transport-https gpg
# Tambahkan GPG key Adoptium
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public \
| gpg --dearmor \
| sudo tee /etc/apt/trusted.gpg.d/adoptium.gpg > /dev/null
# Tambahkan repository
echo "deb https://packages.adoptium.net/artifactory/deb \
$(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" \
| sudo tee /etc/apt/sources.list.d/adoptium.list
# Update dan install
sudo apt update
sudo apt install temurin-21-jdk -y
Mengatur JAVA_HOME di Ubuntu #
# Cari path JDK yang terinstal
update-java-alternatives --list
# Contoh output:
# java-1.21.0-openjdk-amd64 2111 /usr/lib/jvm/java-1.21.0-openjdk-amd64
# Tambahkan ke ~/.bashrc atau ~/.zshrc
echo 'export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Mengelola Banyak Versi dengan update-alternatives #
Ubuntu menyediakan update-alternatives untuk beralih antara versi Java tanpa mengubah environment variable:
# Daftarkan JDK ke alternatives (jika belum otomatis)
sudo update-alternatives --install /usr/bin/java java \
/usr/lib/jvm/java-21-openjdk-amd64/bin/java 2111
sudo update-alternatives --install /usr/bin/javac javac \
/usr/lib/jvm/java-21-openjdk-amd64/bin/javac 2111
# Pilih versi aktif secara interaktif
sudo update-alternatives --config java
Instalasi di Fedora / RHEL / CentOS #
Menggunakan dnf #
# Install OpenJDK 21
sudo dnf install java-21-openjdk-devel -y
# Verifikasi
java -version
javac -version
Mengatur JAVA_HOME di Fedora #
# Cari path JDK
alternatives --list | grep java
# atau
dirname $(dirname $(readlink -f $(which java)))
# Tambahkan ke ~/.bashrc
echo 'export JAVA_HOME=/usr/lib/jvm/java-21-openjdk' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Mengelola Banyak Versi dengan alternatives #
# Lihat semua versi yang terinstal
alternatives --list | grep java
# Ganti versi aktif
sudo alternatives --config java
sudo alternatives --config javac
Mengelola Banyak Versi dengan SDKMAN #
Jika kamu sering berpindah antara proyek yang menggunakan versi Java berbeda — misalnya satu proyek pakai Java 17, proyek lain Java 21 — SDKMAN adalah solusi paling elegan. SDKMAN bekerja di macOS, Linux, dan Windows (via WSL).
Instalasi SDKMAN #
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
# Verifikasi
sdk version
Menggunakan SDKMAN #
# Lihat semua distribusi Java yang tersedia
sdk list java
# Install Eclipse Temurin 21
sdk install java 21.0.3-tem
# Install Temurin 17 (tanpa mengganti versi aktif)
sdk install java 17.0.11-tem
# Lihat versi yang terinstal
sdk list java | grep installed
# Ganti versi aktif secara permanen
sdk use java 21.0.3-tem
# Ganti versi aktif hanya untuk sesi terminal ini
sdk use java 17.0.11-tem
# Set versi default
sdk default java 21.0.3-tem
SDKMAN per Proyek dengan .sdkmanrc #
SDKMAN mendukung file .sdkmanrc di root proyek untuk mengunci versi Java secara otomatis:
# Di root direktori proyek
echo "java=21.0.3-tem" > .sdkmanrc
# Aktifkan auto-switching (tambahkan ke ~/.bashrc atau ~/.zshrc)
echo 'export SDKMAN_AUTO_USE=true' >> ~/.bashrc
source ~/.bashrc
# Sekarang saat masuk ke direktori proyek, versi Java otomatis berganti
cd ~/projects/my-java21-project # otomatis switch ke Java 21
cd ~/projects/my-java17-project # otomatis switch ke Java 17
flowchart TD
A["cd ke direktori proyek"] --> B{Ada .sdkmanrc?}
B -- Ya --> C["Baca versi Java\ndi .sdkmanrc"]
B -- Tidak --> D["Gunakan versi default\ndari sdk default"]
C --> E{Versi sudah\nterinstal?}
E -- Tidak --> F["sdk install java versi-tersebut"]
E -- Ya --> G["sdk use java versi-tersebut"]
F --> G
D --> H["Java aktif"]
G --> H
style H fill:#16a34a,color:#fffStruktur JDK yang Perlu Dipahami #
Mengetahui isi direktori JDK membantu kamu memahami mengapa JAVA_HOME dan PATH perlu dikonfigurasi:
$JAVA_HOME/
├── bin/
│ ├── java ← menjalankan program (.class / .jar)
│ ├── javac ← compiler Java → bytecode
│ ├── javadoc ← generator dokumentasi dari komentar
│ ├── jar ← membuat/membuka file .jar
│ ├── jshell ← REPL interaktif (sejak Java 9)
│ └── jps, jmap, jstack, jconsole ← tools monitoring JVM
├── lib/
│ └── src.zip ← source code standard library
├── include/ ← header C untuk JNI
└── release ← informasi versi build
Menambahkan $JAVA_HOME/bin ke PATH membuat semua tools ini bisa dipanggil dari mana saja di terminal.
Memverifikasi Instalasi Lengkap #
Setelah instalasi, jalankan semua perintah ini untuk memastikan segalanya benar:
# Versi Java runtime
java -version
# Versi compiler
javac -version
# Path JAVA_HOME
echo $JAVA_HOME # Linux/macOS
echo %JAVA_HOME% # Windows
# Tes kompilasi dan eksekusi program sederhana
cat > Hello.java << 'EOF'
public class Hello {
public static void main(String[] args) {
System.out.println("Java " + Runtime.version() + " berhasil diinstal!");
}
}
EOF
javac Hello.java # kompilasi → menghasilkan Hello.class
java Hello # jalankan
# Bersihkan
rm Hello.java Hello.class
Output yang diharapkan:
Java 21.0.3+9-LTS berhasil diinstal!
Jikajava -versionberhasil tetapijavac -versionmenghasilkan error “command not found”, berarti kamu menginstal JRE (runtime saja) bukan JDK (development kit). JRE tidak menyertakan compilerjavac. Pastikan menginstal paket yang namanya mengandung katajdkataudevel, bukan hanyajre.
Ringkasan #
- Pilih Eclipse Temurin — distribusi OpenJDK dari Adoptium adalah pilihan paling aman untuk development umum: gratis, aktif dikelola, dan tersedia di semua platform.
- Gunakan versi LTS — Java 21 adalah LTS terbaru; hindari versi non-LTS untuk project serius karena dukungannya hanya 6 bulan.
JAVA_HOMEwajib diatur — banyak tools (Maven, Gradle, IDE) bergantung pada variabel ini untuk menemukan JDK; instalasi tanpaJAVA_HOMEsering menyebabkan error yang membingungkan.- SDKMAN untuk multi-versi — jika kamu bekerja di banyak proyek dengan versi Java berbeda, SDKMAN dengan
.sdkmanrcper proyek adalah solusi paling ergonomis dibanding mengubahJAVA_HOMEsecara manual.- JDK bukan JRE — pastikan menginstal JDK (mengandung
javac) bukan hanya JRE; tanpajavackamu tidak bisa mengompilasi program Java.- Verifikasi dengan kompilasi nyata — jangan hanya cek
java -version; buat dan jalankan programHello.javasederhana untuk memastikan seluruh toolchain bekerja benar.
Berikutnya: Sintaks Utama →