Programing

Mac OS X 및 여러 Java 버전

lottogame 2020. 3. 22. 10:39
반응형

Mac OS X 및 여러 Java 버전


MacOS에 추가 Java를 설치하려면 어떻게해야합니까? jdk8을 설치했는데 정상적으로 작동합니다. 그러나 이제 개발 목적으로 jdk7 설치가 필요합니다. DMG 파일을 통해 이전 버전을 설치하려고 할 때 이미 최신 버전의 Java가 설치되어 있고 설치 프로그램이 종료된다는 경고가 표시됩니다.

/usr/libexec/java_home -verbose
Matching Java Virtual Machines (1):
    1.8.0_20, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home

   /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home

이 외에도 jdk7을 설치하는 방법은 무엇입니까?

감사합니다
Dakky


Mac에서 여러 Java 버전을 관리하는 가장 깨끗한 방법은을 사용하는 것 Homebrew입니다.

Homebrew에서 다음을 사용하십시오.

  • homebrew-cask 자바 버전을 설치하려면
  • jenv 설치된 Java 버전을 관리합니다.

http://hanxue-it.blogspot.ch/2014/05/installing-java-8-managing-multiple.html 에서 볼 수 있듯이 다음 단계를 따르십시오.

  1. 사제 설치
  2. 사제 jenv 설치
  3. 사제 통을 설치하십시오
  4. cask를 사용하여 특정 Java 버전을 설치하십시오 (아래 "homebrew-cask 버전"단락 참조)
  5. jenv에서이 버전을 추가하여 관리하십시오.
  6. jenv가 버전을 올바르게 관리하고 있는지 확인하십시오.
  7. 필요한 각 버전의 Java에 대해 4-6 단계를 반복하십시오.

사제 통 버전

다음을 사용하여 homebrew/cask-versions탭을 homebrew에 추가하십시오 .

brew tap homebrew/cask-versions

그런 다음 사용 가능한 모든 버전을 볼 수 있습니다.

brew search java

그런 다음 원하는 버전을 설치할 수 있습니다.

brew cask install java7
brew cask install java6

그리고 평소처럼 jenv가 관리하도록 추가하십시오.

jenv add <javaVersionPathHere>

나는 이것이 가장 깨끗하고 간단한 방법이라고 생각합니다.


Mac OS X 10.6.7 Java Path Current JDK 에서 언급했듯이 주목해야 할 또 다른 중요한 사항은 다음과 같습니다.

다른 유형의 JDK 또는 설치의 경우 다른 경로가 있습니다.

를 사용하여 설치된 버전의 경로를 확인할 수 있습니다 . Mac에 Java JDK가 설치되어 있는지 확인하려면 어떻게합니까?를/usr/libexec/java_home -V 참조하십시오 .

Mac OS X Mavericks에서 다음과 같이 나타났습니다.

1) 내장 JRE 기본값 : /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

2) Apple에서 다운로드 한 JDK : /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/

3) Oracle에서 다운로드 한 JDK : /Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home


자원


jdk8을 설치 제거하고 jdk7을 설치 한 다음 jdk8을 다시 설치하십시오.

그들 사이의 전환에 대한 나의 접근법 (. 프로필에서) :

export JAVA_7_HOME=$(/usr/libexec/java_home -v1.7)
export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_9_HOME=$(/usr/libexec/java_home -v9)

alias java7='export JAVA_HOME=$JAVA_7_HOME'
alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java9='export JAVA_HOME=$JAVA_9_HOME'

#default java8
export JAVA_HOME=$JAVA_8_HOME

그런 다음 간단히 입력 java7하거나 java8터미널에 버전을 전환 할 수 있습니다 .

(편집 : Java 9의 Dylans 개선 사항을 추가하도록 업데이트 됨)


macOS Sierra 420의 경우

이 안내서는 다양한 출처 (위의 게시물 및 다른 게시물)에서 함께 제공되었으며 완벽하게 작동합니다.

0. 아직 없으면 homebrew를 설치하십시오.

https://brew.sh/를 참조 하십시오

1. jenv 설치

brew install jenv

2. bash 프로파일에 jenv를 추가하십시오.

if which jenv > /dev/null; then eval "$(jenv init -)"; fi

3. 경로에 jenv 추가

export PATH="$HOME/.jenv/shims:$PATH"

4. "화장실 / 버전"을 누릅니다.

참고 : "Tap"은 추출 가능한 기본 리포지토리의 목록을 넘어 브루어의 기본 리포지토리 목록을 확장합니다.

brew tap caskroom/versions

5. 최신 버전의 Java 설치

brew cask install java

6. Java 6 (또는 필요한 경우 7 또는 8)을 설치하십시오.

brew cask install java6
#brew cask install java7
#brew cask install java8

? 어쩌면 터미널을 닫았다가 다시 시작하여 설정 된 새로운 ENV 변수를 볼 수 있습니다.

7. 설치 검토

모든 Java 버전이 여기에 설치됩니다. /Library/Java/JavaVirtualMachines살펴 보겠습니다.

ls -la /Library/Java/JavaVirtualMachines

8. jenv에 각 경로를 한 번에 하나씩 추가하십시오.

버전 폴더에 "/ Contents / Home"을 추가해야합니다. 경고 : 실제 경로는 컴퓨터에 ... 이건 그냥있는 '들

jenv add /Library/Java/JavaVirtualMachines/1.6.0___EXAMPLE___/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk___EXAMPLE___/Contents/Home

9. jenv 등록 확인

jenv versions

10. 자바 버전을 사용하도록 설정 (글로벌)

여기서 XX는 위의 버전 목록에있는 항목 중 하나와 일치합니다.

jenv global XX

자바 버전 확인

java -version

jenv 버전 확인

별표와 함께 사용중인 현재 버전을 나타내야합니다.

jenv versions

끝난


빠른 미래 참조

Java 버전을 변경하려면

... 사용 가능한 Java 버전 목록을 참조하십시오.

jenv versions

... 그런 다음 XX는 위 목록의 항목과 일치합니다.

jenv global XX

SDKMAN! Mac OS에서 여러 버전의 Java, Gradle, Groovy, Kotlin 및 기타 JVM 도구를 사용하기위한 훌륭한 도구입니다. 설치 및 사용 설명서는 기본 사이트에 있습니다.

(나는 제휴가 없으며 행복한 사용자 일뿐입니다).

사용법 예를 들어, 터미널 창에 다음을 입력하면 사용 가능한 Java SDK 버전 목록이 있습니다 (간결하게 편집).

$ sdk list java
Available Java Versions
   + 9ea170                                                                        
 > + 8u131                                                                         
     7u141-zulu                     

여기 +에 버전이 설치되었음을 나타냅니다. >현재 사용중인 버전을 나타냅니다. 버전을 설치하려면

$ sdk install java 7u141-zulu

이 터미널 창에서 버전을 사용하려면

$ sdk use java 9ea170

웹 사이트 에 나와있는 것처럼 jEnv를 설치하여 시작하겠습니다.

  1. 이것을 터미널에서 실행하십시오.

    brew install https://raw.github.com/gcuisinier/jenv/homebrew/jenv.rb
    
  2. bash 프로파일에 jEnv 추가

    if which jenv > /dev/null; then eval "$(jenv init -)"; fi
    
  3. jEnv를 처음 설치할 때 연관된 JDK가 없습니다.

    예를 들어, 방금 JDK 8을 설치했지만 jEnv는 이에 대해 알지 못합니다. jEnv에서 Java 버전을 확인하려면

    현재 시스템에서 Java 버전 (jre) 만 발견했습니다. *쇼 버전은 현재 선택. rvm 및 rbenv와 달리 jEnv는 JDK를 설치할 수 없습니다. Oracle 웹 사이트에서 JDK를 수동으로 설치해야합니다.

  4. Apple 웹 사이트에서 JDK 6을 설치하십시오. 에 Java가 설치됩니다 /System/Library/Java/JavaVirtualMachines/. Apple 웹 사이트에서 Java 6을 설치하는 이유는 SUN이 MAC 용 JDK 6을 제공하지 않았기 때문에 Apple이 자체 배포 버전을 작성 / 수정했기 때문입니다.

  5. 마찬가지로 JDK7 및 JDK8을 설치하십시오.

  6. jEnv에 JDK를 추가하십시오.

    JDK 6 :

    JDK 7 : http : //javahabi@javahabit.com/wp-content/uploads/2015/03/img_5518ab9bc47d4.png

    JDK 8 : http : //javahabi@javahabit.com/wp-content/uploads/2015/03/img_5518abb2c1217.png

  7. jenv를 사용하여 설치된 Java 버전 확인

    http : //javahabi@javahabit.com/wp-content/uploads/2015/03/img_5518abceb0deb.png

  8. 이제 시스템에 3 가지 버전의 Java가 있습니다. 기본 버전을 설정하려면 다음 명령을 사용하십시오

    jenv local <jenv version>
    

    Ex – Jdk 1.6이 IntelliJ를 시작하기를 원했습니다

    jenv local oracle64-1.6.0.65
    
  9. 자바 버전을 확인하십시오

    자바-버전 http : //javahabi@javahabit.com/wp-content/uploads/2015/03/img_5518abe376dd0.png

그게 다야. 이제 여러 버전의 Java가 있으므로 쉽게 전환 할 수 있습니다. jEnv에는 Gradle, Ant, Maven 등의 래퍼 및 JVM 옵션을 전역 또는 로컬로 설정하는 기능과 같은 다른 기능도 있습니다. 자세한 내용은 설명서를 확인하십시오.


최근에 Jabba 라는 Java 버전 관리자를 발견 했으며 사용법은 rvm (ruby), nvm (node), pyenv (python) 등과 같은 다른 언어의 버전 관리자와 매우 유사합니다. 또한 크로스 플랫폼이므로 확실히 사용할 수 있습니다. 맥.

설치 후 ~ / .jabba에 디렉토리를 작성하여 설치 한 모든 Java 버전을 넣습니다. "Oracle JDK (기본값) / 서버 JRE, Zulu OpenJDK (0.3.0 이후), IBM SDK, Java Technology Edition (0.6.0 이후) 및 사용자 정의 URL 설치를 지원합니다."

기본 사용법은 Github에 나와 있습니다. 빠른 요약 시작 :

curl -sL https://github.com/shyiko/jabba/raw/master/install.sh | bash && . ~/.jabba/jabba.sh

# install Oracle JDK
jabba install 1.8 # "jabba use 1.8" will be called automatically  
jabba install 1.7 # "jabba use 1.7" will be called automatically 

# list all installed JDK's
jabba ls

# switch to a different version of JDK
jabba use 1.8

Mac OS X 10.9.5를 사용하고 있습니다. 이것은 응용 프로그램 A를 실행하고 응용 프로그램 B에 다른 버전을 사용하기 위해 하나의 버전이 필요할 때 내 컴퓨터에서 여러 JDK / JRE를 관리하는 방법입니다.

온라인에서 도움을 얻은 후 다음 스크립트를 작성했습니다.

#!bin/sh
function setjdk() {
  if [ $# -ne 0 ]; then
   removeFromPath '/Library/Java/JavaVirtualMachines/'
   if [ -n "${JAVA_HOME+x}" ]; then
    removeFromPath $JAVA_HOME
   fi
   export JAVA_HOME=/Library/Java/JavaVirtualMachines/$1/Contents/Home
   export PATH=$JAVA_HOME/bin:$PATH
  fi
 }
 function removeFromPath() {
  export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
 }
#setjdk jdk1.8.0_60.jdk
setjdk jdk1.7.0_15.jdk

위의 스크립트를 .profile 파일에 넣었습니다. 터미널을 열고 vi .profile을 입력하고 위의 스 니펫이있는 스크립트를 추가 한 후 저장하십시오. 출력 유형을 입력 source .profile하면 터미널을 다시 시작하지 않고도 프로필 스크립트가 실행됩니다. 이제 java -version1.7을 현재 버전으로 표시해야합니다. 1.8로 변경하려면 해당 줄 setjdk jdk1.7.0_15.jdk을 주석 처리하고 주석 처리를 제거하십시오 setjdk jdk1.8.0_60.jdk. 스크립트를 저장하고 source 명령으로 다시 실행하십시오. 이 메커니즘을 사용하여 다른 Java 버전이 필요한 2 개의 다른 Maven 프로젝트를 컴파일해야 할 때 여러 버전의 JDK / JRE를 관리합니다.


Mac Sierra의 Jenv :

설치 후 작동하지 않으면이 버그 수정을 수행하여 Java 실행 파일을 경로에 추가하십시오.

export PATH="$HOME/.jenv/shims:$PATH"

eval "$(jenv init -)"이 일을 할 수 있지만 . 그 이유는 홈페이지에 설명 된대로 / bin 폴더가 더 이상 존재하지 않지만 대신 shim 폴더가 / bin으로 사용되기 때문입니다.

  • ~ / .jenv가 있는지 확인하십시오
  • which java / Library / ...를 인쇄 할 수 있습니다
  • jenv 글로벌 1.8
  • jenv 쉘 1.8

결국 다음을 which java제공합니다.

/Users/xxxx/.jenv/shims/java


bash에 대한 DRY 버전이 더 있습니다 (Vagard의 답변을 기반으로 함)

1.7과 1.8을 원하는 버전으로 바꾸면 'javaX'라는 별칭이 나타납니다. 여기서 'X'는 쉽게 버전을 전환 할 수있는 Java 버전 (아래 스 니펫의 7/8)입니다.

for version in 1.7 1.8; do
    v="${version: -1}"
    h=JAVA_"$v"_HOME

    export "$h"=$(/usr/libexec/java_home -v $version)

    alias "java$v"="export JAVA_HOME=\$$h"
done

참고 URL : https://stackoverflow.com/questions/26252591/mac-os-x-and-multiple-java-versions

반응형