Java adalah salah satu bahasa pemrograman paling populer di dunia, digunakan untuk membangun berbagai jenis aplikasi lintas platform. Mulai dari smartphone Anda, hingga berbagai software untuk Internet of Things mayoritas menggunakan Java.

Ada dua implementasi yang berbeda dari Java, OpenJDK dan Oracle Java dengan hampir tidak ada perbedaan di antara keduanya, kecuali bahwa Java Oracle memiliki beberapa fitur komersial tambahan. Lisensi Oracle Java hanya mengizinkan penggunaan non-komersial dari perangkat lunak, seperti penggunaan pribadi dan penggunaan pengembangan. OpenJDK adalah implementasi open-source dari Java Platform.

Repositori default CentOS 8 mencakup dua versi Java LTS terbaru, Java 8 dan Java 11.

Dalam tutorial ini, kami akan menjelaskan cara menginstal satu atau lebih versi Java (OpenJDK) pada CentOS 8 dan cara mengatur Java default melalui alternatif.

Install OpenJDK 11

Rekomendasi umum adalah menginstal versi Java LTS terbaru (JDK 11). Beberapa aplikasi berbasis Java mungkin memerlukan versi Java tertentu, jadi Anda mungkin perlu membaca dokumentasi untuk aplikasi yang ingin Anda install.

Untuk menginstal OpenJDK 11 pada CentOS 8, jalankan perintah berikut sebagai root atau user dengan hak akses sudo:

sudo yum install java-11-openjdk-devel

Setelah instalasi selesai, Anda dapat memverifikasinya dengan memeriksa versi Java:

java -version

Outputnya akan terlihat seperti ini:

openjdk version "11.0.4" 2019-07-16 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.4+11-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.4+11-LTS, mixed mode, sharing)

Pada poin ini, Anda telah berhasil menginstal Java pada sistem CentOS 8 Anda.

CentOS 8 juga mendukung versi headless OpenJDK yang menyediakan runtime Java minimal yang diperlukan untuk menjalankan aplikasi. Headless OpenJDK adalah Java tanpa GUI (tanpa dukungan keyboard, mouse, dan sistem tampilan). Versi ini lebih cocok untuk aplikasi server karena memiliki lebih sedikit ketergantungan dan menggunakan lebih sedikit sumber daya sistem.

Untuk menginstal hanya tipe OpenJDK 11 headless :

sudo yum install java-11-openjdk-headless

Jika Anda sudah menginstal java-11-openjdk-devel, paket headless akan diinstal sebagai dependensi.

nstall OpenJDK 8 JDK

Java 8 masih merupakan versi Java yang paling banyak digunakan. Jika aplikasi Anda membutuhkan Java 8, yang notabene versi lebih lama, instal dengan menjalankan perintah berikut:

sudo yum install java-1.8.0-openjdk-devel

Verifikasi instalasi dengan memeriksa versi Java:

java -version

Outputnya akan terlihat seperti ini:

openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)

Untuk Java runtime minimal, instal pake java-1.8.0-openjdk-headless .

Cara Setting Versi Default Java

Jika Anda menginstal beberapa versi Java pada sistem CentOS, Anda dapat menggunakan sistem alternatif untuk mengatur versi Java mana yang akan digunakan ketika Anda mengetik java di terminal.

Untuk memeriksa versi Java apa yang ditetapkan sebagai versi default, ketik:

java -version

Jika Anda memiliki beberapa versi Java yang diinstal pada server, Anda dapat mengubah versi standar menggunakan perintah alternatives seperti yang ditunjukkan di bawah ini:

sudo alternatives --config java

outputnya akan terlihat seperti ini :

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
   1           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.4.11-0.el8_0.x86_64/bin/java)
*+ 2           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el8_0.x86_64/jre/bin/java)

Enter to keep the current selection[+], or type selection number:

Daftar semua versi Java yang diinstal akan dicetak pada layar. Masukkan nomor versi yang ingin Anda gunakan sebagai default dan tekan Enter.

Anda mungkin juga ingin mengubah versi javac default:

sudo alternatives --config java

javac adalah utilitas perintah untuk compile program Java.

Seting Environment Variable JAVA_HOME

Variabel environment JAVA_HOME digunakan oleh beberapa aplikasi Java untuk menentukan lokasi instalasi Java dan menentukan versi Java mana yang harus digunakan untuk menjalankan aplikasi.

Untuk mengatur variabel JAVA_HOME pada basis per-user, tambahkan variabel tersebut ke ~/.bashrc atau file konfigurasi lainnya yang dimuat ketika user login. Untuk pengaturan sistem, gunakan skrip di dalam direktori /etc/profile.d.

Dengan asumsi Anda ingin mengatur JAVA_HOME menjadi OpenJDK 8,  tambahkan baris berikut, di akhir file:

sudo nano /etc/profile.d/java.sh
JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk"

Agar perubahan berlaku pada shell Anda saat ini, Anda bisa log out dan log in kembali atau menggunakan perintah source:

source /etc/profile.d/java.sh

Verifikasi bahwa environment variable  JAVA_HOME telah ditetapkan dengan benar:

echo $JAVA_HOME

Outputnya dari perintah di atas akan memperlihatkan path ke instalasi Java:

/usr/lib/jvm/java-1.8.0-openjdk

Anda juga dapat mengatur JAVA_HOME dalam konfigurasi aplikasi, unit file systemd, atau pada baris perintah saat meluncurkan program.

Misalnya untuk menjalankan Maven menggunakan Java 8 Anda dapat mengetik:

JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk mvn --version
...
Java version: 1.8.0_222, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el8_0.x86_64/jre
...

Kesimpulan

CentOS 8 mendukung dua versi Java utama, Java 8 dan Java 11, yang dapat diinstal menggunakan pengelola paket yum.