Articles

MungingData

jenv facilitează rularea mai multor versiuni de Java pe un computer Mac. De asemenea, este ușor să comutați fără probleme între versiunile Java atunci când comutați proiecte.

rularea mai multor versiuni Java este importantă pentru dezvoltatorii Android și Apache Spark. Dezvoltatorii Spark ar trebui să utilizeze Java 8 pentru proiectele Spark 2 și Java 11 pentru proiectele Spark 3, de exemplu.

această postare pe blog vă arată cum să obțineți configurarea jenv pe computer și cum să utilizați comenzile importante.

jenv setup

Instalați jenv cubrew install jenv. Aceasta este o comandă Homebrew.jenv folosește modelul shim design pentru a direcționa comenzile către versiunea Java corespunzătoare. Rulați aceste comenzi pentru a vă actualiza PATH:

echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrcecho 'eval "$(jenv init -)"' >> ~/.zshrc

reporniți terminalul, rulați echo $PATH și verificați dacă ieșirea conține .jenv căi care sunt prefabricate directoarelor de cale standard. Iată ieșirea de pe mașina mea /Users/powers/.jenv/shims:/Users/powers/.jenv/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin.

instalați Java 8

Iată cea mai recentă comandă pentru a instala Java 8:brew cask install adoptopenjdk/openjdk/adoptopenjdk8.

brew cask install adoptopenjdk8 folosit pentru a lucra, dar acum se întoarce Error: Cask 'adoptopenjdk8' is unavailable: No Cask with this name exists.

brew cask install caskroom/versions/adoptopenjdk8 de asemenea, folosit pentru a lucra, dar acum se întoarce Error: caskroom/versions was moved. Tap homebrew/cask-versions instead.

o dată Java este descărcat, trebuie să-l adăugăm manual la jenv. Listați mașinile virtuale Java cu ls -1 /Library/Java/JavaVirtualMachines.

adăugați Java 8 la jenv cujenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/.

setați versiunea Java globală pe computer cujenv global openjdk64-1.8.0.265. Comanda exactă de pe mașina dvs. ar putea fi ceva ușor diferit, cum ar fi jenv global openjdk64-1.8.0.272. Găsiți numele exact al versiunii cu jenv versions.

verificați dacă comenzilejavac -version șijava -version funcționează.

setați versiunea Java globală

Mac-urile vin cu Java preinstalat. Este întotdeauna bine să evitați utilizarea versiunilor de limbaj de programare instalate de sistem(se aplică și Python și Ruby). jenv îl face ușor pentru a evita utilizarea sistemului Java.

setați versiunea globală Java la Java 8 cujenv global openjdk64-1.8.0.265.

această comandă scrie pur și simplu versiunea în fișierul/Users/powers/.jenv/version. Tastați cat /Users/powers/.jenv/version pentru a vedea că este doar un fișier cu o singură linie

openjdk64-1.8.0.272

toate comenzile Java vor fi direcționate către Java 8 acum că versiunea globală este setată. Acest lucru vă va asigura că evităm să lovim versiunea Java a sistemului.

set JAVA_HOME

o mulțime de biblioteci Java depind de a avea unJAVA_HOME set de variabile de mediu. Setați variabila de mediu executând aceste comenzi:

jenv enable-plugin exportexec $SHELL -l

rulațiecho $JAVA_HOME și verificați dacă returnează ceva de genul/Users/powers/.jenv/versions/openjdk64-1.8.0.272. Acum, orice bibliotecă care caută JAVA_HOME mediu care urmează să fie setat nu va eroare.

rulațijenv doctor pentru a confirma că configurarea dvs. este bună. Ar trebui să obțineți ieșire ca aceasta:

 JAVA_HOME variable probably set by jenv PROMPT Java binaries in path are jenv shims Jenv is correctly loaded

instalați Java 11

iată comanda pentru a instala Java 11: brew cask install adoptopenjdk/openjdk/adoptopenjdk11.

amintiți-vă că versiunile Java trebuie adăugate manual la jenv. Listați mașinile virtuale Java cu ls -1 /Library/Java/JavaVirtualMachines.

adăugați Java 11 la jenv cujenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/.

jenv versions comanda ar trebui să emită acum acest lucru:

 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

Configurarea Maven

which mvn returnează/usr/local/bin/mvn, care este versiunea de sistem a maven. Similar cu Java, nu vrem niciodată să rulăm comenzi folosind sistemul Maven. Să folosim jenv pentru a obține o versiune diferită a Maven.

activați pluginul jenv Maven cujenv enable-plugin maven și apoi executațiwhich mvn pentru a verifica dacă comenzilemvn sunt capturate corect de un shim jenv. Comandawhich mvn ar trebui să returneze ceva de genul/Users/powers/.jenv/shims/mvn.

puteți verifica dacă instalarea Maven funcționează corect clonând un proiect și rulând suita de testare. Clonați proiectul JavaSpark cu comanda git clone [email protected]:MrPowers/JavaSpark.git.

cd în directorul de proiect și executați suita de testare cumvn test.

puteți tastamvn -v pentru a vedea versiunea Maven care este utilizată. Mașina mea folosește Maven 3.6.3 cu Java 8.

de asemenea, puteți clona repo-ul deequ și puteți verifica dacămvn test lucrează și la repo-ul respectiv.

setarea versiunii Java locale pentru proiecte

utilizați comandajenv local openjdk64-11.0.9 pentru a seta un proiect Dat să utilizeze Java 11 în mod implicit.

aceasta va adăuga un fișier.java-version în folderul proiectului rădăcină. Iată un exemplu.

puteți clona delta-examples repo cugit clone [email protected]:MrPowers/delta-examples.git, cd-ul în director și rulațijenv versions pentru a verifica dacă proiectul utilizează automat Java 11.

iatăjenv versions ieșire din directorul rădăcină al proiectului delta-examples:

 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)

capacitatea jenv de a comuta automat versiunile Java pentru diferite proiecte este destul de convenabilă. Nu trebuie să vă gândiți la setarea manuală a versiunii Java atunci când schimbați proiectele.

alte modalități de a comuta versiunile Java

proiectul AdoptOpenJDK oferă îndrumări despre cum să comutați manual între versiunile Java dacă nu doriți să utilizați jenv. Iată funcția pe care o oferă:

jdk() { version=$1 export JAVA_HOME=$(/usr/libexec/java_home -v"$version"); java -version }

comutarea manuală este posibilă, dar cine vrea să irosească energia mentală gândindu-se la versiunile Java de fiecare dată când schimbă un proiect?

pașii următori

jenv vă va ajuta să gestionați Java pe Mac, chiar dacă trebuie să utilizați doar o singură versiune.

gestionarea diferitelor versiuni Java pe o anumită mașină a fost o durere uriașă înainte ca jenv să apară. Acum, trebuie doar să rulați câteva comenzi și mașina dvs. poate fi configurată pentru a rula orice versiune Java. jenv îl face ușor pentru a evita utilizarea accidentală a sistemului instalat pachete Java.jenv a construit în plugin-uri pentru SBT, Scala, Groovy, și mai mult. Asigurați-vă că activați pluginurile relevante pentru fluxurile dvs. de lucru.