MungingData
jenv: n kanssa helpottaa Javan useiden versioiden ajamista Mac-tietokoneella. Sen avulla on myös helppo vaihtaa saumattomasti Java-versioiden välillä, kun vaihdat projekteja.
useiden Java-versioiden ajaminen on tärkeää Android-ja Apache Spark-kehittäjille. Spark-kehittäjien tulisi käyttää Java 8: aa Spark 2-projekteissa ja Java 11: tä esimerkiksi Spark 3-projekteissa.
tämä blogikirjoitus näyttää, miten jenv-asetukset saa koneellesi ja miten tärkeitä komentoja käytetään.
jenv setup
Asenna jenv kanssa brew install jenv
. Tämä on Homebrew ’ n käsky.
jenv käyttää shim-suunnittelukuviota ohjatakseen komennot sopivaan Java-versioon. Suorita nämä komennot päivittääksesi PATH
:
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrcecho 'eval "$(jenv init -)"' >> ~/.zshrc
Käynnistä pääte uudelleen, suorita echo $PATH
ja varmista, että ulostulo sisältää .jenv
polkuja, jotka ovat valmiiksi tavallisiin POLKUHAKEMISTOIHIN. Tässä koneeni lähtö /Users/powers/.jenv/shims:/Users/powers/.jenv/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
.
asenna Java 8
tässä viimeisin komento asentaa Java 8: brew cask install adoptopenjdk/openjdk/adoptopenjdk8
.
brew cask install adoptopenjdk8
käytetty töihin, mutta nyt palaa Error: Cask 'adoptopenjdk8' is unavailable: No Cask with this name exists.
brew cask install caskroom/versions/adoptopenjdk8
myös käytetty, mutta nyt palaaError: caskroom/versions was moved. Tap homebrew/cask-versions instead.
kerran Java on ladattu, meidän täytyy manuaalisesti lisätä se jenv. Listaa Java-virtuaalikoneet ls -1 /Library/Java/JavaVirtualMachines
.
Lisää Jenviin Java 8: n kanssa jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/
.
Aseta globaali Java-versio tietokoneellesi jenv global openjdk64-1.8.0.265
. Koneen tarkka komento saattaa olla jotain hieman erilaista, kuten jenv global openjdk64-1.8.0.272
. Etsi version tarkka nimi .
Tarkista, että javac -version
ja java -version
komennot toimivat.
Aseta globaali Java-versio
Macit tulevat Java-esiasennettuna. Järjestelmän asennettujen ohjelmointikieliversioiden käyttöä on aina hyvä välttää (koskee myös Pythonia ja Rubya). jenv on helppo välttää järjestelmän Java.
asetti globaalin Java-version Java 8: ksi jenv global openjdk64-1.8.0.265
.
Tämä komento yksinkertaisesti kirjoittaa version /Users/powers/.jenv/version
– tiedostoon. Type cat /Users/powers/.jenv/version
nähdäksesi sen olevan vain tiedosto, jossa on vain yksi rivi
openjdk64-1.8.0.272
kaikki Java-komennot reititetään Java 8: aan nyt, kun maailmanlaajuinen versio on asetettu. Tämä varmistaa, että vältämme lyömällä järjestelmän Java-versio.
Aseta JAVA_HOME
monet Java-kirjastot riippuvat siitä, onko JAVA_HOME
ympäristömuuttujajoukko. Määritä ympäristömuuttuja suorittamalla nämä komennot:
jenv enable-plugin exportexec $SHELL -l
Run echo $JAVA_HOME
ja varmista, että se palauttaa jotain /Users/powers/.jenv/versions/openjdk64-1.8.0.272
. Nyt mikä tahansa kirjasto, joka etsii JAVA_HOME
asetettavaa ympäristöä, ei voi erehtyä.
Suorita jenv doctor
varmistaaksesi asetuksesi olevan hyvä. Lähtö pitäisi saada näin:
JAVA_HOME variable probably set by jenv PROMPT Java binaries in path are jenv shims Jenv is correctly loaded
asenna Java 11
tässä komento asentaa Java 11: brew cask install adoptopenjdk/openjdk/adoptopenjdk11
.
muista, että Jenviin on lisättävä Java-versiot manuaalisesti. Listaa Java-virtuaalikoneet ls -1 /Library/Java/JavaVirtualMachines
.
Lisää Jenviin Java 11: n kanssa jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/
.
komennon pitäisi nyt tulostaa tämä:
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
perustamalla Maven
which mvn
palauttaa /usr/local/bin/mvn
, joka on järjestelmäversio mavenista. Kuten Java, emme koskaan halua suorittaa komentoja käyttämällä järjestelmää Maven. Hankitaan Jenvillä erilainen versio Mavenista.
ota jenv Maven-liitännäinen käyttöön jenv enable-plugin maven
ja suorita sen jälkeen which mvn
varmistaaksesi, että mvn
komennot ovat oikein jenv Shimin kaappaamia. which mvn
komennon pitäisi palauttaa jotain sellaista kuin/Users/powers/.jenv/shims/mvn
.
voit varmistaa, että Maven-asennuksesi toimii oikein kloonaamalla projektin ja suorittamalla testisarjan. Kloonaa JavaSpark-projekti git clone [email protected]:MrPowers/JavaSpark.git
– komennolla.
cd
projektihakemistoon ja suorita testisarja mvn test
.
voit kirjoittaa mvn -v
nähdäksesi käytössä olevan Maven-version. Koneeni käyttää Maven 3.6.3: a Java 8: n kanssa.
Voit myös kloonata deequen repon ja varmistaa, että mvn test
toimii myös kyseisen repon parissa.
paikallisen Java-version asettaminen projekteille
käytä jenv local openjdk64-11.0.9
– komentoa asettaaksesi tietyn projektin käyttämään oletuksena Java 11: tä.
Tämä lisää .java-version
tiedoston juuriprojektikansioon. Tässä on esimerkki.
voit kloonata delta-examples repon kanssa git clone [email protected]:MrPowers/delta-examples.git
, cd-levyn hakemistoon ja ajaa varmistaaksesi, että projekti käyttää automaattisesti Java 11: tä.
tässä on lähtö delta-examples project-juurihakemistosta:
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)
jenvin kyky vaihtaa automaattisesti Java-versioita eri projekteihin on varsin kätevä. Sinun ei tarvitse ajatella Java-version manuaalisesti asettamista, kun vaihdat projekteja.
muita tapoja vaihtaa Java-versioita
AdoptOpenJDK-projekti antaa ohjeita siitä, miten Java-versioiden välillä voi manuaalisesti vaihtaa, jos ei halua käyttää jenviä. Tässä on niiden tarjoama funktio:
jdk() { version=$1 export JAVA_HOME=$(/usr/libexec/java_home -v"$version"); java -version }
manuaalisesti vaihtaminen on mahdollista, mutta kuka haluaa tuhlata henkistä energiaa ajattelemalla Java-versioita joka kerta, kun he vaihtavat projektia?
seuraavat vaiheet
jenv auttaa Javan hallinnassa Macissa, vaikka tarvitsisi käyttää vain yhtä versiota.
eri Java-versioiden hallinta tietyllä koneella oli valtavaa tuskaa ennen jenvin tuloa. Nyt, sinun tarvitsee vain suorittaa muutamia komentoja ja kone voidaan määrittää suorittamaan minkä tahansa Java-version. jenvin avulla on helppo välttää vahingossa järjestelmään asennettujen Java-pakettien käyttö.
jenv on rakentanut lisäosia muun muassa SBT: lle, Scalalle ja Groovylle. Varmista, että otat käyttöön liitännäiset, jotka ovat merkityksellisiä työnkulkujesi kannalta.
Leave a Reply