MungingData
jenv usnadňuje spuštění více verzí Javy na počítači Mac. To také usnadňuje bezproblémové přepínání mezi verzemi Java při přepínání projektů.
spuštění více verzí Java je důležité pro vývojáře Android a Apache Spark. Vývojáři Spark by měli používat Java 8 Pro Spark 2 projekty a Java 11 pro Spark 3 projekty například.
tento blogový příspěvek vám ukáže, jak získat nastavení jenv v počítači a jak používat důležité příkazy.
jenv setup
nainstalujte jenv pomocí brew install jenv
. Toto je příkaz Homebrew.
jenv používá vzor návrhu shim pro směrování příkazů do příslušné verze Java. Spustit tyto příkazy aktualizovat PATH
:
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrcecho 'eval "$(jenv init -)"' >> ~/.zshrc
Restartujte Terminál, spustit echo $PATH
, a zkontrolujte, zda výstup obsahuje .jenv
cesty, které jsou před standardní adresáře. Zde je výstup na mém počítači /Users/powers/.jenv/shims:/Users/powers/.jenv/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
.
Install Java 8
zde je nejnovější příkaz k instalaci Java 8: brew cask install adoptopenjdk/openjdk/adoptopenjdk8
.
brew cask install adoptopenjdk8
pracoval, ale nyní se vrací Error: Cask 'adoptopenjdk8' is unavailable: No Cask with this name exists.
brew cask install caskroom/versions/adoptopenjdk8
použita také do práce, ale teď se vrací Error: caskroom/versions was moved. Tap homebrew/cask-versions instead.
Jakmile je Java stáhnout, musíme ručně přidat do jenv. Seznam virtuálních strojů Java s ls -1 /Library/Java/JavaVirtualMachines
.
přidejte Javu 8 do jenv pomocí jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/
.
nastavte globální verzi Java v počítači pomocí jenv global openjdk64-1.8.0.265
. Přesný příkaz na vašem počítači může být něco trochu jiného, jako jenv global openjdk64-1.8.0.272
. Najděte přesný název verze pomocí jenv versions
.
zkontrolujte, zda příkazy javac -version
a java -version
fungují.
nastavte globální verzi Java
Macy jsou dodávány s předinstalovanou Javou. Vždy je dobré se vyvarovat používání systémových verzí programovacího jazyka (platí i pro Python a Ruby). jenv usnadňuje vyhnout se používání systému Java.
nastavte globální verzi Java na Java 8 pomocí jenv global openjdk64-1.8.0.265
.
Tento příkaz jednoduše zapíše verzi do souboru /Users/powers/.jenv/version
. Typ cat /Users/powers/.jenv/version
je vidět, že je to jen soubor s jediný řádek,
openjdk64-1.8.0.272
Všechny Java příkazy budou směrovány k Java 8 nyní, že globální verze je nastavit. Tím se zajistíme, že se vyhneme zásahu do systémové verze Java.
nastavit JAVA_HOME
spousta Java knihoven závisí na tom, že má JAVA_HOME
nastavení proměnné prostředí. Nastavit proměnnou prostředí spuštěním těchto příkazů:
jenv enable-plugin exportexec $SHELL -l
Spustit echo $JAVA_HOME
a ověřte, že vrací něco jako /Users/powers/.jenv/versions/openjdk64-1.8.0.272
. Nyní každá knihovna, která hledá JAVA_HOME
prostředí nastavit nebude chyba.
spusťte jenv doctor
a potvrďte, že vaše nastavení je dobré. Měli byste získat výstup takto:
JAVA_HOME variable probably set by jenv PROMPT Java binaries in path are jenv shims Jenv is correctly loaded
nainstalujte Java 11
zde je příkaz k instalaci Java 11: brew cask install adoptopenjdk/openjdk/adoptopenjdk11
.
nezapomeňte, že Java verze musí být ručně přidány do jenv. Seznam virtuálních strojů Java s ls -1 /Library/Java/JavaVirtualMachines
.
přidejte Javu 11 do jenv pomocí jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/
.
jenv versions
příkaz by měl nyní výstupu tohoto:
system 1.8 1.8.0.272 11 11.0 11.0.9* openjdk64-1.8.0.272 (set by /Users/powers/.jenv/version) openjdk64-11.0.9
Nastavení Maven
which mvn
výnosy /usr/local/bin/mvn
, což je verze systému Maven. Podobně jako Java, nikdy nechceme spouštět příkazy pomocí systému Maven. Použijme jenv k získání jiné verze Maven.
Povolit jenv Maven plugin s jenv enable-plugin maven
a pak spustit which mvn
ověřte, zda mvn
příkazy jsou správně zachyceny jenv shim. Příkaz which mvn
by měl vrátit něco jako /Users/powers/.jenv/shims/mvn
.
klonováním projektu a spuštěním testovací sady můžete ověřit, že vaše instalace Maven funguje správně. Klonujte Projekt JavaSpark pomocí příkazu git clone [email protected]:MrPowers/JavaSpark.git
.
cd
do adresáře projektu a spusťte testovací sadu s mvn test
.
můžete zadat mvn -v
pro zobrazení použité verze Maven. Můj stroj používá Maven 3.6.3 s Java 8.
můžete také klonovat deequ repo a ověřit, že mvn test
pracuje také na tomto repo.
Nastavení místní verze Java pro projekty
použijte příkaz jenv local openjdk64-11.0.9
pro nastavení daného projektu pro použití Java 11 ve výchozím nastavení.
tím se přidá soubor .java-version
do kořenové složky projektu. Zde je příklad.
můžete naklonovat delta-příklady repo s git clone [email protected]:MrPowers/delta-examples.git
, cd do adresáře a spustit jenv versions
ověřit, že projekt je automaticky pomocí Java 11.
Zde je jenv versions
výstup z delta-příklady kořenovém adresáři projektu:
system 1.8 1.8.0.272 11 11.0 11.0.9 openjdk64-1.8.0.272* openjdk64-11.0.9 (set by /Users/powers/Documents/code/my_apps/delta-examples/.java-version)
jenv je schopnost automaticky přepínat Java verze pro různé projekty, je docela pohodlné. Při změně projektů nemusíte přemýšlet o ručním nastavení verze Java.
další způsoby přepínání verzí Java
Projekt AdoptOpenJDK poskytuje návod, jak ručně přepínat mezi verzemi Java, pokud nechcete používat jenv. Zde je funkce, kterou poskytují:
jdk() { version=$1 export JAVA_HOME=$(/usr/libexec/java_home -v"$version"); java -version }
ruční přepínání je možné, ale kdo chce plýtvat duševní energií přemýšlením o verzích Java pokaždé, když přepnou projekt?
další kroky
jenv vám pomůže spravovat Javu Na Vašem počítači Mac, i když potřebujete použít pouze jednu verzi.
Správa různých verzí Java na daném počítači byla obrovská bolest, než přišla jenv. Nyní stačí spustit několik příkazů a počítač lze nakonfigurovat tak, aby spouštěl libovolnou verzi Java. jenv usnadňuje vyhnout se náhodnému použití systému nainstalovaných balíčků Java.
jenv má vestavěné pluginy pro SBT, Scala, Groovy a další. Nezapomeňte povolit pluginy, které jsou relevantní pro vaše pracovní postupy.
Leave a Reply