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.3Nyní 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.3Vš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.1Openjdk-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.3Zapomeň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