GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengelola Beberapa Versi Java Dengan jEnv Di Linux

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

Linux
  1. Bagaimana Mengelola Kemampuan File Linux

  2. Cara Mengelola Layanan Systemd dengan Systemctl di Linux

  3. Cara Mengelola Versi NodeJS dengan n di Ubuntu 20.04

  1. Cara Mengelola Beberapa Versi Python Dengan Pyenv Di Linux

  2. Cara bekerja dengan beberapa versi java di Linux

  3. Bagaimana mengelola workstation linux dengan kebijakan

  1. Cara menginstal Java di Linux

  2. Cara Mengelola Kata Sandi Akun di Linux

  3. Bagaimana mengelola pengguna dengan useradd di linux