MungingData
jenv segítségével megkönnyíti a Java több verziójának futtatását Mac számítógépen. Azt is megkönnyíti, hogy zökkenőmentesen válthat a Java verziók, ha váltani projektek.
Több Java verzió futtatása fontos az Android és az Apache Spark fejlesztők számára. A Spark fejlesztőinek Java 8-at kell használniuk a Spark 2 projektekhez, a Java 11-et pedig például a Spark 3 projektekhez.
Ez a blogbejegyzés megmutatja, hogyan szerezheti be a jenv beállítást a számítógépén, valamint hogyan használhatja a fontos parancsokat.
jenv setup
Install jenv with brew install jenv
. Ez egy Homebrew parancs.
a jenv a shim tervezési mintát használja a parancsok átirányításához a megfelelő Java verzióhoz. Futtassa ezeket a parancsokat a PATH
:
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrcecho 'eval "$(jenv init -)"' >> ~/.zshrc
indítsa újra a terminált, futtassa a echo $PATH
parancsot, és ellenőrizze, hogy a kimenet tartalmaz-e .jenv
elérési útvonalakat, amelyek a standard PATH könyvtárakhoz vannak előkészítve. Itt van a kimenet a gépemen /Users/powers/.jenv/shims:/Users/powers/.jenv/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
.
telepítse a Java 8
itt van a legújabb parancs a Java 8 telepítéséhez: brew cask install adoptopenjdk/openjdk/adoptopenjdk8
.
brew cask install adoptopenjdk8
használt dolgozni, de most visszatér Error: Cask 'adoptopenjdk8' is unavailable: No Cask with this name exists.
brew cask install caskroom/versions/adoptopenjdk8
szintén használt dolgozni, de most visszatér
egyszer a Java letölthető, manuálisan kell hozzáadnunk a jenv-hez. Sorolja fel a Java virtuális gépek ls -1 /Library/Java/JavaVirtualMachines
.
Add Java 8 jenv jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/
.
állítsa be a globális Java verziót a számítógépen jenv global openjdk64-1.8.0.265
. A pontos parancs a gépen lehet valami kicsit más, mint a jenv global openjdk64-1.8.0.272
. Keresse meg a verzió pontos nevét a jenv versions
segítségével.
ellenőrizze, hogy ajavac -version
ésjava -version
parancsok működnek-e.
Set global Java version
Mac jön Java előre telepített. Mindig jó elkerülni a rendszer által telepített programozási nyelvi verziók használatát (a Python-ra és a Ruby-ra is vonatkozik). a jenv megkönnyíti a Java rendszer használatának elkerülését.
állítsa a globális Java verziót Java 8-ra a jenv global openjdk64-1.8.0.265
segítségével.
Ez a parancs egyszerűen írja a verziót a /Users/powers/.jenv/version
fájlba. Írja be a cat /Users/powers/.jenv/version
hogy ez csak egy fájl egyetlen sorral
openjdk64-1.8.0.272
az összes Java parancs Java 8-ra kerül, most, hogy a globális verzió be van állítva. Ezzel elkerülhetjük a rendszer Java verziójának ütközését.
Set JAVA_HOME
sok Java könyvtár függ, hogy aJAVA_HOME
környezeti változó készlet. Állítsa be a környezeti változót a következő parancsok futtatásával:
jenv enable-plugin exportexec $SHELL -l
Run echo $JAVA_HOME
és ellenőrizze, hogy visszaad-e valamit, mint például a /Users/powers/.jenv/versions/openjdk64-1.8.0.272
. Most minden olyan könyvtár, amely aJAVA_HOME
környezetet keresi, nem fog hibázni.
Run jenv doctor
a beállítás megerősítéséhez jó. Ilyen kimenetet kell kapnia:
JAVA_HOME variable probably set by jenv PROMPT Java binaries in path are jenv shims Jenv is correctly loaded
telepítse a Java 11
parancsot a Java 11 telepítésére: brew cask install adoptopenjdk/openjdk/adoptopenjdk11
.
ne feledje, hogy a Java verziókat manuálisan kell hozzáadni a jenv-hez. Sorolja fel a Java virtuális gépek ls -1 /Library/Java/JavaVirtualMachines
.
Add Java 11 a jenv jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/
.
a jenv versions
parancsnak most ezt kell kiadnia:
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
Maven beállítása
which mvn
/usr/local/bin/mvn
, ami a rendszer változata Maven. A Java-hoz hasonlóan soha nem akarunk parancsokat futtatni a Maven rendszerrel. Használjuk a jenv-t, hogy megkapjuk a Maven másik verzióját.
engedélyezze a jenv Maven plugint jenv enable-plugin maven
majd futtassa a which mvn
parancsot annak ellenőrzésére, hogy a mvn
parancsokat egy jenv shim megfelelően rögzíti. Awhich mvn
parancsnak vissza kell adnia valami hasonlót:/Users/powers/.jenv/shims/mvn
.
egy projekt klónozásával és a tesztcsomag futtatásával ellenőrizheti, hogy a Maven telepítése megfelelően működik-e. Klón a JavaSpark projekt a git clone [email protected]:MrPowers/JavaSpark.git
parancs.
cd
a projekt könyvtárba, majd futtassa a tesztcsomagot mvn test
.
beírhatja amvn -v
parancsot a használt Maven verzió megtekintéséhez. Saját gép használ Maven 3.6.3 Java 8.
klónozhatja a deequ repo-t is, és ellenőrizheti, hogy amvn test
ezen a repo-n is dolgozik-e.
helyi Java verzió beállítása projektekhez
használja ajenv local openjdk64-11.0.9
parancsot egy adott projekt beállításához a Java 11 alapértelmezett használatához.
ez hozzáad egy .java-version
fájlt a gyökérprojekt mappába. Íme egy példa.
a delta-examples repo-t agit clone [email protected]:MrPowers/delta-examples.git
, a CD-t a könyvtárba klónozhatja, ajenv versions
futtatásával ellenőrizheti, hogy a projekt automatikusan Java 11-et használ-e.
itt van ajenv versions
kimenet a delta-példák projekt gyökérkönyvtárából:
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 azon képessége, hogy a Java verziókat különböző projektekhez automatikusan átkapcsolja, nagyon kényelmes. A projektek módosításakor nem kell gondolnia a Java verzió manuális beállítására.
A Java verziók
váltásának egyéb módjai az AdoptOpenJDK projekt útmutatást nyújt a Java verziók közötti kézi váltáshoz, ha nem akarja használni a jenv-t. Itt van az általuk biztosított funkció:
jdk() { version=$1 export JAVA_HOME=$(/usr/libexec/java_home -v"$version"); java -version }
kézi váltás lehetséges,de ki akarja pazarolni a mentális energiát a Java verziókra gondolva minden alkalommal, amikor egy projektet váltanak?
következő lépések
a jenv segít a Java kezelésében a Mac számítógépen, még akkor is, ha csak egyetlen verziót kell használnia.
kezelése különböző Java verziók egy adott gépen volt egy hatalmas fájdalom, mielőtt jenv jött. Most már csak néhány parancsot kell futtatnia, a gép pedig bármilyen Java verzió futtatására konfigurálható. a jenv megkönnyíti a rendszer által telepített Java csomagok véletlen használatának elkerülését.
a jenv beépülő modulokat épített az SBT, a Scala, A Groovy stb. Győződjön meg róla, hogy engedélyezi a munkafolyamatok szempontjából releváns bővítményeket.
Leave a Reply