Articles

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.jenvbaner 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/adoptopenjdk8returnerer 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.