Articles

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/adoptopenjdk8myö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.