GNU/Linux >> Znalost Linux >  >> Linux

Jak spravovat více verzí Java pomocí jEnv v systému Linux

Jako vývojář Java byste rádi otestovali svůj kód s různými verzemi Java. Nebo jste jednoduše chtěli držet krok s funkcemi nové verze Java. Nastavení různých prostředí Java může být často časově náročný a skličující úkol. Zde se hodí systémy pro správu verzí! Dnes si probereme jeden takový správce verzí s názvem jEnv . jEnv je nástroj příkazového řádku pro správu více verzí Java v systému Linux. Je to jako SDKMAN , ale pouze pro Javu. jEnv je aktualizovaná větev jenv , který sám o sobě je převzat z rbenv . jEnv je docela užitečný pro vývoj java aplikací, které vyžadují přesnou verzi Java.

Pomocí jEnv, vývojáře;

  • může nainstalovat a spravovat několik instalací Java vedle sebe,
  • může nastavit instalaci Java na globální úrovni, adresáři (specifické pro aplikaci) a dokonce i na úrovni prostředí (specifické pro shell),
  • může snadno a rychle přepínat mezi různými verzemi jazyka Java,
  • není potřeba nastavovat proměnnou prostředí JAVA_HOME pro každou verzi.

Nainstalujte Javu

Upozorňujeme, že jEnv nenainstaluje Javu pro tebe. Bude spravovat pouze stávající instalace Java. Měli byste nainstalovat Javu pomocí správce balíčků nebo jakýmkoli jiným způsobem podle vašeho výběru. Chystám se nainstalovat openjdk 13 a 14 na svůj systém Ubuntu:

$ sudo apt install openjdk-13-jdk$ sudo apt install openjdk-14-jdk

Pokud již máte nainstalovanou Javu, tento krok ignorujte.

Nainstalujte jEnv na Linux

Git clone jEnv repository pomocí příkazu:

$ git klon https://github.com/jenv/jenv.git ~/.jenv

Výše uvedený příkaz naklonuje obsah jEnv do místního adresáře s názvem .jenv .

Poté přidejte jEnv do své $PATH:

$ echo 'export PATH="$HOME/.jenv/bin:$PATH"'>> ~/.bash_profile

Dále inicializujte jEnv:

$ echo 'eval "$(jenv init -)"'>> ~/.bash_profile

Nakonec aktualizujte změny, které jsme právě provedli v ~/.bash_profile pomocí příkazu.

$ source ~/.bash_profile

Pokud to z nějakého důvodu nefunguje, stačí použít ~/.bashrc místo ~/.bash_profile.

$ echo 'export PATH="$HOME/.jenv/bin:$PATH"'>> ~/.bashrc$ echo 'eval "$(jenv init -)"'>> ~/.bashrc$ zdroj ~ /.bashrc

Pokud jste na Zsh shell, příkazy pro instalaci jEnv jsou:

$ echo 'export PATH="$HOME/.jenv/bin:$PATH"'>> ~/.zshrc$ echo 'eval "$(jenv init -)"'>> ~/.zshrc

Ověřte instalaci jEnv

Ověřte, zda je jEnv nainstalován pomocí příkazu:

$ jenv doctor

Ukázkový výstup:

[OK] Není nastavena žádná JAVA_HOME [CHYBA] Binární Java v cestě není v shims jenv.[CHYBA] Zkontrolujte prosím svou cestu nebo zkuste použít /path/to/java/home není platná cesta k instalaci Java. CESTA :/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 je správně načten 

Jak vidíte, výstup říká, že proměnná JAVA_HOME ještě není nastavena a jenv je správně načten. Ostatní chyby si nevšímejte. Budou pryč, jakmile v další sekci přidáme Javu.

Nyní nastavíme proměnnou prostředí JAVA_HOME pomocí příkazu:

Export $ jenv enable-plugin

Měli byste restartovat vaši aktuální relaci shellu, abyste aktivovali jenv export plugin echo export plugin aktivován. Chcete-li restartovat relaci prostředí, spusťte:

$ exec $SHELL -l

Nyní znovu spusťte příkaz „jenv doctor“ a uvidíte, co vrátí!

$ jenv doctor

Ukázkový výstup:

[OK] Proměnná JAVA_HOME pravděpodobně nastavena jenv PROMPT [CHYBA] Binární Java v cestě není v shims jenv.[CHYBA] Zkontrolujte prosím svou cestu nebo zkuste použít /path/to/java/home není platná cesta k instalaci Java. CESTA :/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 je správně načten 

Hotovo! Proměnná JAVA_HOME bude automaticky nastavena jEnv v závislosti na aktuálně aktivním prostředí Java.

Správa více verzí Java pomocí jEnv v systému Linux

Spuštěním jEnv bez jakýchkoli voleb se zobrazí sekce nápovědy:

$ jenv

Ukázkový výstup:

jenv 0.5.3-2-g78dbd7fUsage:jenv  []Některé užitečné příkazy jenv jsou:příkazy Vypsat všechny dostupné příkazy jenv místní Nastavit nebo zobrazit verzi jazyka Java specifickou pro místní aplikaci globální Nastavit nebo zobrazit globální Java verze shell Nastavit nebo zobrazit rehash verze Java specifickou pro shell Rehash jenv shims (spusťte to po instalaci spustitelných souborů) verze Zobrazit aktuální verzi Java a její původní verze Vypsat všechny verze Java dostupné pro jenv, které Zobrazit úplnou cestu ke spustitelnému souboru odkud Vypsat všechny verze Java, které obsahují daný spustitelný soubor, přidávají Add JDK do jenv. Název aliasu bude vygenerován analýzou "java -version" Viz `jenv help ' pro informace o konkrétním příkazu. Úplnou dokumentaci najdete na:https://github.com/jenv/jenv/blob/master/ README.md

Přidejte různá prostředí Java

Nyní musíme jenv sdělit, kde se nacházejí naše prostředí Java.

Nejprve přidejte prostředí openjdk-13 pomocí příkazu:

$ jenv add /usr/lib/jvm/java-13-openjdk-amd64/

Ukázkový výstup:

openjdk64-13.0.3 přidáno13.0.3 přidáno13.0 přidáno13 přidáno

Poté přidejte openjdk-14 pomocí příkazu:

$ jenv add /usr/lib/jvm/java-14-openjdk-amd64/ openjdk64-14.0.1 přidáno14.0.1 přidáno14.0 přidáno14 přidáno

Nyní zkontrolujte všechny dostupné verze Java pro jenv pomocí příkazu:

Verze $ jenv

Ukázkový výstup:

* systém (nastavený /home/ostechnix/.jenv/version) 13 13.0 13.0.3 14 14.0 14.0.1 openjdk64-13.0.3 openjdk64-14.0.1

Jak můžete vidět ve výše uvedeném výstupu, aktuálně jsou spravována dvě prostředí Java, tj. openjdk 13 a openjdk 14. Ostatní čísla ve výstupu nevadí. Jsou to jen aliasy odkazující na stejnou verzi.

Nastavit globální prostředí Java

Jak jsem již řekl, jenv vám umožňuje nastavit instalaci Java na globální nebo na adresář/projekt nebo na shell a přepínat mezi nimi bez změny globální verze.

Pojďme zkontrolovat aktuální verzi Java:

$ java --version openjdk 14.0.1 2020-04-14 OpenJDK Runtime Environment (sestavení 14.0.1+7-Ubuntu-1ubuntu1) OpenJDK 64-Bit Server VM (sestavení 14.0.1+7-Ubuntu-1ubuntu1)

předběžně smíšený režim, sdílení

Jak vidíte ve výstupu, aktuální globální verze byla nastavena na openjdk-14.

Chcete-li nastavit openjdk-13 jako globální verzi, spusťte:

$ jenv global openjdk64-13.0.3

Nyní zkontrolujte verzi Java:

$ java --version openjdk 13.0.3 2020-04-14 OpenJDK Runtime Environment (sestavení 13.0.3+3-Ubuntu-1ubuntu2) OpenJDK 64-Bit Server VM (sestavení 13.0.3+3-Ubuntu-1ubuntu2, smíšený režim) 

Můžete také použít pouze čísla aliasů místo plné verze, jak je uvedeno níže:

$ jenv globální 13$ jenv globální 13,0$ jenv globální 13.0.3

Všechny tyto tři příkazy nastaví openjdk-13 jako globální verzi.

Nastavit místní prostředí Java nebo prostředí Java podle adresáře

Někdy můžete chtít nastavit prostředí Java pro konkrétní projekt, aniž byste měnili globální verzi.

Například následující kroky nastaví openjdk-14 jako lokální verzi pro náš projekt s názvem "ostechnix-java", ale nezmění globální verzi.

$ mkdir ostechnix-java$ cd ostechnix-java$ jenv local openjdk64-14.0.1

Nyní je naše místní prostředí openjdk-14, ale globální prostředí Java je openjdk-13. Podobně můžete pro každou aplikaci nastavit více různých prostředí Java. Stačí přejít do adresáře projektu a nastavit požadované prostředí Java dle vašeho výběru a začít sestavovat nebo testovat aplikaci. Je to tak jednoduché!

Nastavit prostředí Java specifické pro shell

Chcete-li nastavit prostředí Java pro aktuální relaci shellu, spusťte:

$ jenv shell openjdk64-14.0.1

Openjdk-14 je verze Java používaná v tomto konkrétním prostředí. Jakmile opustíte aktuální relaci shellu, vstoupí v platnost předchozí globálně používaná verze Java.

Není třeba nastavovat $JAVA_HOME!

Všimli jste si, že jsem nikdy nenastavil proměnnou $JAVA_HOME při přechodu na různé verze Java? Ne, ani jednou! Jenv se o to postará a automaticky to nastaví za vás v závislosti na prostředí Java, ve kterém se nacházíte.

Aktuální nastavení proměnné JAVA_HOME můžete zobrazit příkazem:

$ echo $JAVA_HOME /home/ostechnix/.jenv/versions/openjdk64-13.0.3

Zapomeňte na to, jak nastavit proměnnou prostředí JAVA_HOME a soustřeďte se na svůj vývoj.

Související čtení:

  • Pyenv – Snazší správa verzí Pythonu

Linux
  1. Jak spravovat služby Systemd pomocí Systemctl v systému Linux

  2. Jak spravovat více verzí Pythonu pomocí Pyenv v systému Linux

  3. Jak pracovat s více verzemi Java pod Linuxem

  1. Jak nainstalovat Javu na Linux

  2. Jak nainstalovat / přepínat mezi více verzemi Java pomocí SDKMAN

  3. Jak spravovat linuxové pracovní stanice pomocí zásad

  1. Jak spravovat možnosti souborů Linux

  2. Jak spravovat heslo účtu v Linuxu

  3. Jak spravovat verze NodeJS s n v Ubuntu 20.04