MungingData
jenv gjør det enkelt å kjøre flere versjoner Av Java på En Mac-datamaskin. Det gjør det også enkelt å sømløst bytte Mellom Java-versjoner når du bytter prosjekter.
Kjører flere Java-versjoner er viktig For Android og Apache Spark utviklere. Spark utviklere bør bruke Java 8 For Spark 2 prosjekter Og Java 11 For Spark 3 prosjekter for eksempel.
dette blogginnlegget viser deg hvordan du får jenv setup på datamaskinen og hvordan du bruker de viktige kommandoene.
jenv oppsett
Installer jenv med brew install jenv
. Dette er En Homebrew kommando.
jenv bruker shim-designmønsteret til å rute kommandoer til riktig Java-versjon. Kjør disse kommandoene for å oppdatere PATH
:
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrcecho 'eval "$(jenv init -)"' >> ~/.zshrc
Start Terminalen på Nytt, kjørecho $PATH
, og kontroller at utdataene inneholder.jenv
baner som er lagt til standard BANEKATALOGER. Her er utgangen på maskinen min/Users/powers/.jenv/shims:/Users/powers/.jenv/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
.
Installer Java 8
her er den siste kommandoen for å installere Java 8: brew cask install adoptopenjdk/openjdk/adoptopenjdk8
.
brew cask install adoptopenjdk8
pleide å jobbe, men returnerer nå Error: Cask 'adoptopenjdk8' is unavailable: No Cask with this name exists.
brew cask install caskroom/versions/adoptopenjdk8
returnerer nåError: caskroom/versions was moved. Tap homebrew/cask-versions instead.
En Gang java er lastet ned, vi må manuelt legge den til jenv. Oppgi Java virtuelle maskiner med ls -1 /Library/Java/JavaVirtualMachines
.
Legg Til Java 8 til jenv medjenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/
.
Sett den globale Java-versjonen på datamaskinen din med jenv global openjdk64-1.8.0.265
. Den nøyaktige kommandoen på maskinen din kan være noe litt annerledes som jenv global openjdk64-1.8.0.272
. Finn det eksakte navnet på versjonen med jenv versions
.
Kontroller at kommandoenejavac -version
ogjava -version
fungerer.
Angi global Java-versjon
Mac-maskiner leveres med Java forhåndsinstallert. Det er alltid godt å unngå å bruke systeminstallerte programmeringsspråkversjoner(gjelder Også Python og Ruby). jenv gjør det enkelt å unngå Å bruke Systemet Java.
Sett den globale Java-versjonen Til Java 8 med jenv global openjdk64-1.8.0.265
.
denne kommandoen skriver bare versjonen til/Users/powers/.jenv/version
– filen. Skriv cat /Users/powers/.jenv/version
for å se det er bare en fil med en enkelt linje
openjdk64-1.8.0.272
Alle Java-kommandoer vil bli rutet Til Java 8 nå som den globale versjonen er satt. Dette vil sørge for at vi unngår å treffe System Java-versjonen.
SETT JAVA_HOME
Mange Java-biblioteker er avhengige av å ha etJAVA_HOME
miljøvariabelsett. Sett miljøvariabelen ved å kjøre disse kommandoene:
jenv enable-plugin exportexec $SHELL -l
Kjør echo $JAVA_HOME
og kontroller at den returnerer noe som /Users/powers/.jenv/versions/openjdk64-1.8.0.272
. Nå er et bibliotek som ser etter JAVA_HOME
– miljøet som skal settes, ikke feil ut.
Kjør jenv doctor
for å bekrefte at oppsettet ditt er bra. Du bør få utdata slik:
JAVA_HOME variable probably set by jenv PROMPT Java binaries in path are jenv shims Jenv is correctly loaded
Installer Java 11
her er kommandoen for å installere Java 11: brew cask install adoptopenjdk/openjdk/adoptopenjdk11
.
Husk At Java-versjoner må legges til jenv manuelt. Oppgi Java virtuelle maskiner med ls -1 /Library/Java/JavaVirtualMachines
.
Legg Til Java 11 til jenv med jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/
.
jenv versions
kommandoen skal nå sende ut dette:
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
Sette Opp Maven
which mvn
returnerer/usr/local/bin/mvn
, som er systemversjonen av maven. I Likhet Med Java vil vi aldri kjøre kommandoer ved hjelp av systemet Maven. La oss bruke jenv til å få en annen versjon av Maven.
Aktiver jenv maven plugin med jenv enable-plugin maven
og kjør which mvn
for å bekrefte at mvn
kommandoer blir riktig fanget av en jenv shim. Kommandoenwhich mvn
skal returnere noe som /Users/powers/.jenv/shims/mvn
.
du kan kontrollere At maven-installasjonen fungerer som den skal ved å klone et prosjekt og kjøre testpakken. Klon JavaSpark-prosjektet med kommandoen git clone [email protected]:MrPowers/JavaSpark.git
.
cd
inn i prosjektkatalogen og kjør testpakken med mvn test
.
du kan skrive mvn -v
for å se Maven-versjonen som brukes. Min maskin bruker Maven 3.6.3 Med Java 8.
Du kan også klone deequ repo og bekrefte at mvn test
jobber med den repo også.
Angi lokal Java-versjon for prosjekter
Bruk kommandoen jenv local openjdk64-11.0.9
for å angi At Et gitt prosjekt skal bruke Java 11 som standard.
dette vil legge til en .java-version
fil i rotprosjektmappen. Her er et eksempel.
du kan klone delta-examples repo med git clone [email protected]:MrPowers/delta-examples.git
, cd i katalogen og kjøre jenv versions
for å bekrefte at prosjektet automatisk bruker Java 11.
Her er jenv versions
utgang fra delta-eksempler prosjekt rotkatalogen:
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 evne til å automatisk bytte Java-versjoner for ulike prosjekter er ganske praktisk. Du trenger ikke å tenke på manuelt å sette Java-versjonen når du endrer prosjekter.
Andre Måter å bytte Java-versjoner
AdoptOpenJDK-prosjektet gir veiledning om hvordan du manuelt bytter Mellom Java-versjoner hvis du ikke vil bruke jenv. Her er funksjonen de gir:
jdk() { version=$1 export JAVA_HOME=$(/usr/libexec/java_home -v"$version"); java -version }
Bytte manuelt er mulig, men hvem vil kaste bort mental energi å tenke På Java-versjoner hver gang de bytter et prosjekt?
Neste trinn
jenv vil hjelpe deg med Å administrere Java På Mac, selv om du bare trenger å bruke en enkelt versjon.Å Administrere Ulike Java-versjoner på en gitt maskin var en stor smerte før jenv kom sammen. Nå trenger du bare å kjøre noen få kommandoer, og maskinen din kan konfigureres til å kjøre En Hvilken Som Helst Java-versjon. jenv gjør det enkelt å unngå ved et uhell å bruke systeminstallerte Java-pakker.
jenv har innebygd plugins FOR SBT, Scala, Groovy og mer. Sørg for å aktivere pluginene som er relevante for arbeidsflyten din.
Leave a Reply