Sebagai pengembang Java, Anda ingin menguji kode Anda dengan versi Java yang berbeda. Atau Anda hanya ingin mengikuti fitur-fitur versi Java yang baru. Menyiapkan lingkungan Java yang berbeda seringkali bisa menjadi tugas yang memakan waktu dan menakutkan. Di sinilah sistem manajemen versi berguna! Hari ini, kita akan membahas salah satu pengelola versi yang disebut jEnv . jEnv adalah alat baris perintah untuk mengelola beberapa versi java di Linux. Ini seperti SDKMAN , tetapi hanya untuk Jawa. jEnv adalah garpu yang diperbarui dari jenv , yang diadaptasi dari rbenv . jEnv cukup berguna untuk mengembangkan aplikasi java yang membutuhkan versi Java yang tepat.
Menggunakan jEnv, seorang pengembang;
- dapat menginstal dan mengelola beberapa instalasi Java secara berdampingan,
- dapat mengatur instalasi Java di global, direktori (khusus aplikasi) dan bahkan per tingkat shell (khusus shell),
- dapat beralih di antara versi java yang berbeda dengan mudah dan cepat,
- tidak perlu menyetel variabel lingkungan JAVA_HOME untuk setiap versi.
Instal Java
Harap perhatikan bahwa jEnv tidak akan menginstal Java untuk kamu. Ini hanya akan mengelola instalasi Java yang ada. Anda harus menginstal Java menggunakan manajer paket Anda atau cara lain pilihan Anda. Saya akan menginstal openjdk 13 dan 14 di sistem Ubuntu saya:
$ sudo apt install openjdk-13-jdk $ sudo apt install openjdk-14-jdk
Jika Anda sudah menginstal Java, abaikan saja langkah ini.
Instal jEnv di Linux
Repositori Git clone jEnv menggunakan perintah:
$ git clone https://github.com/jenv/jenv.git ~/.jenv
Perintah di atas akan mengkloning konten jEnv di direktori lokal bernama .jenv .
Kemudian, tambahkan jEnv ke $PATH Anda:
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
Selanjutnya, inisialisasi jEnv:
$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile
Terakhir, perbarui perubahan yang baru saja kita buat di ~/.bash_profile menggunakan perintah.
$ source ~/.bash_profile
Jika tidak berhasil karena alasan apa pun, gunakan saja ~/.bashrc bukannya ~/.bash_profile.
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bashrc $ echo 'eval "$(jenv init -)"' >> ~/.bashrc $ source ~/.bashrc
Jika Anda menggunakan Zsh shell, perintah untuk menginstal jEnv adalah:
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc $ echo 'eval "$(jenv init -)"' >> ~/.zshrc
Verifikasi instalasi jEnv
Mari kita verifikasi apakah jEnv diinstal dengan perintah:
$ jenv doctor
Contoh keluaran:
[OK] No JAVA_HOME set [ERROR] Java binary in path is not in the jenv shims. [ERROR] Please check your path, or try using /path/to/java/home is not a valid path to java installation. PATH : /home/ostechnix/.jenv/libexec:/home/ostechnix/.jenv/shims:/home/ostechnix/.jenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin [OK] Jenv is correctly loaded
Seperti yang Anda lihat, output mengatakan variabel Java_HOME belum disetel dan jenv dimuat dengan benar. Jangan pedulikan kesalahan lainnya. Mereka akan hilang setelah kami menambahkan Java di bagian berikutnya.
Sekarang mari kita atur variabel lingkungan JAVA_HOME menggunakan perintah:
$ jenv enable-plugin export
Anda harus memulai ulang sesi shell Anda saat ini untuk mengaktifkan plugin jenv export plugin echo export yang diaktifkan. Untuk memulai kembali sesi shell, jalankan:
$ exec $SHELL -l
Sekarang, jalankan lagi perintah "jenv doctor" dan lihat hasilnya!
$ jenv doctor
Contoh keluaran:
[OK] JAVA_HOME variable probably set by jenv PROMPT [ERROR] Java binary in path is not in the jenv shims. [ERROR] Please check your path, or try using /path/to/java/home is not a valid path to java installation. PATH : /home/ostechnix/.jenv/libexec:/home/ostechnix/.jenv/shims:/home/ostechnix/.jenv/bin:/home/ostechnix/.jenv/shims:/home/ostechnix/.jenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin [OK] Jenv is correctly loaded
Selesai! Variabel JAVA_HOME akan secara otomatis disetel oleh jEnv tergantung pada lingkungan Java yang aktif saat ini.
Mengelola Beberapa Versi Java Dengan jEnv Di Linux
Menjalankan jEnv tanpa opsi apa pun akan menampilkan bagian bantuan:
$ jenv
Contoh keluaran:
jenv 0.5.3-2-g78dbd7f Usage: jenv <command> [<args>] Some useful jenv commands are: commands List all available jenv commands local Set or show the local application-specific Java version global Set or show the global Java version shell Set or show the shell-specific Java version rehash Rehash jenv shims (run this after installing executables) version Show the current Java version and its origin versions List all Java versions available to jenv which Display the full path to an executable whence List all Java versions that contain the given executable add Add JDK into jenv. A alias name will be generated by parsing "java -version" See `jenv help <command>' for information on a specific command. For full documentation, see: https://github.com/jenv/jenv/blob/master/README.md
Tambahkan lingkungan Java yang berbeda
Sekarang kita perlu memberi tahu jenv di mana lingkungan Java kita berada.
Pertama, mari kita tambahkan lingkungan openjdk-13 menggunakan perintah:
$ jenv add /usr/lib/jvm/java-13-openjdk-amd64/
Contoh keluaran:
openjdk64-13.0.3 added 13.0.3 added 13.0 added 13 added
Kemudian, tambahkan openjdk-14 menggunakan perintah:
$ jenv add /usr/lib/jvm/java-14-openjdk-amd64/ openjdk64-14.0.1 added 14.0.1 added 14.0 added 14 added
Sekarang periksa semua versi Java yang tersedia ke jenv menggunakan perintah:
$ jenv versions
Contoh keluaran:
* system (set by /home/ostechnix/.jenv/version) 13 13.0 13.0.3 14 14.0 14.0.1 openjdk64-13.0.3 openjdk64-14.0.1
Seperti yang Anda lihat pada output di atas, dua lingkungan Java yaitu openjdk 13 dan openjdk 14 saat ini sedang dikelola. Jangankan nomor lain di output. Mereka hanyalah alias yang merujuk pada versi yang sama.
Menyetel lingkungan Java global
Seperti yang sudah saya katakan, jenv memungkinkan Anda untuk mengatur instalasi java di global atau per direktori/proyek, atau per shell dan beralih di antara mereka tanpa mengubah versi global.
Mari kita periksa versi Java saat ini:
$ java --version openjdk 14.0.1 2020-04-14 OpenJDK Runtime Environment (build 14.0.1+7-Ubuntu-1ubuntu1) OpenJDK 64-Bit Server VM (build 14.0.1+7-Ubuntu-1ubuntu1, mixed mode, sharing)
Seperti yang Anda lihat di output, versi global saat ini telah disetel ke openjdk-14.
Untuk menyetel openjdk-13 sebagai versi global, jalankan:
$ jenv global openjdk64-13.0.3
Sekarang periksa versi Java:
$ java --version openjdk 13.0.3 2020-04-14 OpenJDK Runtime Environment (build 13.0.3+3-Ubuntu-1ubuntu2) OpenJDK 64-Bit Server VM (build 13.0.3+3-Ubuntu-1ubuntu2, mixed mode)
Anda juga dapat menggunakan nomor alias alih-alih versi lengkap seperti di bawah ini:
$ jenv global 13 $ jenv global 13.0 $ jenv global 13.0.3
Ketiga perintah ini akan menetapkan openjdk-13 sebagai versi global.
Setel lingkungan Java lokal atau per-direktori
Terkadang, Anda mungkin ingin menyetel lingkungan java untuk proyek tertentu, tanpa mengubah versi globalnya.
Misalnya, langkah-langkah berikut akan menetapkan openjdk-14 sebagai versi lokal untuk proyek kami yang bernama "ostechnix-java", tetapi tidak akan mengubah versi global.
$ mkdir ostechnix-java $ cd ostechnix-java $ jenv local openjdk64-14.0.1
Sekarang lingkungan lokal kita adalah openjdk-14, tetapi lingkungan java global adalah openjdk-13. Demikian pula Anda dapat mengatur beberapa lingkungan Java yang berbeda untuk setiap aplikasi. Cukup buka direktori proyek dan atur lingkungan Java yang diinginkan sesuai pilihan Anda dan mulailah membangun atau menguji aplikasi. Sesederhana itu!
Menyetel lingkungan Java khusus shell
Untuk menyetel lingkungan Java untuk sesi shell saat ini, jalankan:
$ jenv shell openjdk64-14.0.1
Openjdk-14 adalah versi Java yang digunakan dalam shell khusus ini. Setelah Anda keluar dari sesi shell saat ini, versi Java yang digunakan secara global sebelumnya akan mulai berlaku.
Tidak perlu menyetel $JAVA_HOME!
Apakah Anda memperhatikan bahwa saya tidak pernah menyetel variabel $JAVA_HOME saat beralih ke versi Java yang berbeda? Tidak, tidak sekali pun! Jenv akan menanganinya dan secara otomatis akan mengaturnya untuk Anda tergantung pada lingkungan Java tempat Anda berada.
Anda dapat melihat pengaturan variabel JAVA_HOME saat ini menggunakan perintah:
$ echo $JAVA_HOME /home/ostechnix/.jenv/versions/openjdk64-13.0.3
Lupakan saja cara menyetel variabel lingkungan JAVA_HOME dan fokus pada pengembangan Anda.
Bacaan terkait:
- Pyenv – Manajemen Versi Python Menjadi Lebih Mudah