Articles

MungingData

jenv 은 쉽게 실행하는 여러 버전의 자바 Mac 컴퓨터입니다. 또한 프로젝트를 전환 할 때 Java 버전간에 원활하게 전환하기가 쉽습니다.

여러 Java 버전을 실행하는 것은 Android 및 Apache Spark 개발자에게 중요합니다. Spark 개발자는 Spark2 프로젝트의 경우 Java8 을 사용하고 예를 들어 Spark3 프로젝트의 경우 Java11 을 사용해야합니다.

이 블로그 게시물은 컴퓨터에서 jenv 설정을 얻는 방법과 중요한 명령을 사용하는 방법을 보여줍니다.

jenv 설치

brew install jenv로 jenv 를 설치하십시오. 이것은 자작 명령입니다.

jenv 는 shim 디자인 패턴을 사용하여 명령을 적절한 Java 버전으로 라우팅합니다. 이러한 명령을 실행하는 업데이트PATH

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

다시 시작 당신의 터미널을 실행echo $PATH.jenv/Users/powers/.jenv/shims:/Users/powers/.jenv/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin의 출력입니다.

Java8 설치

Java8 을 설치하는 최신 명령은 다음과 같습니다.brew cask install adoptopenjdk/openjdk/adoptopenjdk8.

brew cask install adoptopenjdk8Error: Cask 'adoptopenjdk8' is unavailable: No Cask with this name exists.

brew cask install caskroom/versions/adoptopenjdk8Error: caskroom/versions was moved. Tap homebrew/cask-versions instead.

한 번 Java 다운로드,우리는 우리를 수동으로 추가할 필요하 jenv. Java 가상 머신을ls -1 /Library/Java/JavaVirtualMachines로 나열합니다.자바 8 을 jenv 에

jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/로 추가합니다.

jenv global openjdk64-1.8.0.265로 컴퓨터의 글로벌 Java 버전을 설정하십시오. 컴퓨터의 정확한 명령은jenv global openjdk64-1.8.0.272jenv versions가있는 버전의 정확한 이름을 찾으십시오.

javac -versionjava -version명령이 작동하는지 확인하십시오.

글로벌 Java 버전 설정

Mac 에는 Java 가 사전 설치되어 있습니다. 시스템에 설치된 프로그래밍 언어 버전을 사용하지 않는 것이 항상 좋습니다(파이썬과 루비에도 적용됩니다). jenv 는 시스템 Java 사용을 피하기가 쉽습니다.

jenv global openjdk64-1.8.0.265로 글로벌 Java 버전을 Java8 로 설정합니다.

이 명령은 단순히/Users/powers/.jenv/versioncat /Users/powers/.jenv/version시 그것은 단지 파일이 하나의 선

openjdk64-1.8.0.272

모든 Java 명령을 전송됩니다 Java8 이제는 글로벌 버전을 설정합니다. 이것은 우리가 시스템 자바 버전을 치는 것을 피할 수 있도록 할 것입니다.

SET JAVA_HOME

많은 Java 라이브러리는JAVA_HOME환경 변수 세트를 갖는 것에 의존합니다. 환경 변수 설정을 실행하여 이러한 명령:

jenv enable-plugin exportexec $SHELL -l

실행>echo $JAVA_HOME/Users/powers/.jenv/versions/openjdk64-1.8.0.272JAVA_HOME환경을 찾고있는 라이브러리는 오류가 발생하지 않습니다.

jenv doctor를 실행하여 설정이 양호한 지 확인하십시오. 출력을 얻어야 합니다 다음과 같다:

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

설치 Java11

여기 명령어를 설치하 Java11:brew cask install adoptopenjdk/openjdk/adoptopenjdk11.Java 버전을 jenv 에 수동으로 추가해야한다는 것을 기억하십시오. Java 가상 머신을ls -1 /Library/Java/JavaVirtualMachines로 나열합니다.자바 11 을 jenv 에

jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/로 추가합니다.

jenv versions명령이 지금 이 출력:

 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

설정 Maven

which mvn/usr/local/bin/mvn는 시스템의 버전을 받는다는 것입니다. Java 와 마찬가지로 시스템 Maven 을 사용하여 명령을 실행하고 싶지는 않습니다. Jenv 를 사용하여 Maven 의 다른 버전을 얻자.

사용 jenv Maven pluginjenv enable-plugin mavenwhich mvnmvn명령은 제대로에 의해 캡처 jenv shim. which mvn/Users/powers/.jenv/shims/mvn와 같은 것을 반환해야합니다.

프로젝트를 복제하고 테스트 스위트를 실행하여 Maven 설치가 제대로 작동하는지 확인할 수 있습니다. JavaSpark 프로젝트를git clone [email protected]:MrPowers/JavaSpark.git명령으로 복제하십시오.

cdmvn test.

mvn -v를 입력하여 사용중인 Maven 버전을 볼 수 있습니다. 내 기계는 Java8 과 함께 Maven3.6.3 을 사용하고 있습니다.

deeque repo 를 복제하고mvn test도 해당 repo 에서 작동하는지 확인할 수도 있습니다.

설정 Java 버전 지역 프로젝트에 대해

사용하는jenv local openjdk64-11.0.9명령을 설정하는 주어진 프로젝트를 사용하 Java11 기본적으로 합니다.

이렇게하면 루트 프로젝트 폴더에.java-version파일이 추가됩니다. 다음은 예입니다.

복제할 수 있습니다 delta-예 repogit clone [email protected]:MrPowers/delta-examples.git,cd 디렉토리로,그리고 실행하는jenv versions는지 확인하려면 프로젝트가 자동으로 Java 를 사용하여 11.

여기에는jenv versions출력에서 델타-예제 프로젝트의 루트 디렉토리:

 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 의 능력을 자동으로 전환 Java 버전을 다른 프로젝트에 대해 매우 편리합니다. 프로젝트를 변경할 때 Java 버전을 수동으로 설정하는 것에 대해 생각할 필요가 없습니다.

기타 방법으로 전환하는 자바 버전

AdoptOpenJDK 프로젝트 제공하는 방법에 대한 지침을 수동으로 전환 Java 버전 경우에 당신을 사용하고 싶지 않 jenv. 여기에 함수들은 제공합니다:

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

수동으로 전환이 가능하지만,사람들고 싶어 정신 에너지를 낭비에 대해 생각 Java 버전마다 그들은 전환 프로젝트가 있습니까?

다음 단계

jenv 는 단일 버전 만 사용해야하는 경우에도 Mac 에서 Java 를 관리하는 데 도움이됩니다.주어진 시스템에서 다른 Java 버전을 관리하는 것은 jenv 가 따라 오기 전에 큰 고통이었습니다. 이제 몇 가지 명령 만 실행해야하며 모든 Java 버전을 실행하도록 컴퓨터를 구성 할 수 있습니다. jenv 는 실수로 시스템이 설치된 Java 패키지를 사용하지 않도록 쉽게 만듭니다.

jenv 는 sbt,Scala,Groovy 등을위한 플러그인을 내장하고 있습니다. 워크 플로와 관련된 플러그인을 활성화해야합니다.