source

MacOS에서 기본 Java(JDK) 버전을 설정하거나 변경하는 방법은 무엇입니까?

factcode 2022. 8. 27. 09:22
반응형

MacOS에서 기본 Java(JDK) 버전을 설정하거나 변경하는 방법은 무엇입니까?

Mac에서 Java의 기본 버전을 변경하려면 어떻게 해야 합니까?

번째 실행 ★★★★★★★★★★★★★★★★★★」/usr/libexec/java_home -V하다

Matching Java Virtual Machines (3):
1.8.0_05, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
1.6.0_65-b14-462, x86_64:   "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_65-b14-462, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

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

합니다( 「 」 「 」 「 」 「 」 。1.6.0_65-b14-462( (논쟁을 위해)

export JAVA_HOME=`/usr/libexec/java_home -v 1.6.0_65-b14-462`

또는 다음과 같이 메이저버전만 지정할 수 있습니다.

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

시점에서, 「 」를 해 .java -version뭇매를 맞다

java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)

, 그럼 여기에다가 더해져요.export JAVA_HOME…초기화하다

Bash의 경우(Antonyh가 밝힌 바와 같이):

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

물고기의 경우(ormurin에 의해 명시됨)

set -x JAVA_HOME (/usr/libexec/java_home -d64 -v1.8)

.zshrc 파일을 업데이트하면 다음과 같이 됩니다.

nano ~/.zshrc

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8.0)

CTRL+X를 눌러 편집기를 종료하고 Y를 눌러 변경 내용을 저장합니다.

source ~/.zshrc
echo $JAVA_HOME
java -version

답변은 여러 버전의 JDK가 macOS El Capitan 이상(Sierra, High Sierra, Mojave)에 개발 목적으로 설치되어 있는 경우 시스템 전체(현재 실행 중인 셸뿐 아니라)에서 Java 버전을 제어하는 방법을 설명합니다.제가 알기로는 현재 답변 중 그런 답변은 없습니다(*).

개발자로서 여러 JDK를 사용하고 있기 때문에, 간단하게 전환하고 싶습니다.보통 최신 안정형 일반용과 테스트용 제품을 가지고 있습니다.다만, 현재 사용하고 있는 최신의 「얼리 액세스」버전은 사용하고 싶지 않습니다(IDE 를 기동할 때 등).시스템의 디폴트를 제어하고 싶습니다만, 최신의 안정성이 필요합니다.

다음 접근법은 적어도 Java 7에서 12(이 문서 작성 시점에서의 초기 액세스), Oracle JDK 또는 OpenJDK(Adapt Open에 의한 빌드 포함)에서 작동합니다.JDK는 2018년 10월 중순 이후에 생산되었습니다.)

서드파티 툴을 사용하지 않는 솔루션:

  • 「JDK」에 둡니다./Library/Java/JavaVirtualMachines디폴트로는 가장 높은 버전이 선택됩니다.
  • 기본적으로는 JDK를 선택하지 않으려면 이름을 로 변경합니다.이 JDK는 다음 경우에도 사용할 수 있습니다.$JAVA_HOME를 가리키거나 스크립트 또는 설정에서 명시적으로 참조합니다.은 단순히 이다.java명령어를 입력합니다.

는 "JDK"가 중 의 JDK를 합니다.Info.plistfilename을 클릭합니다.

JDK를 기존 JDK') 합니다.jenv, " " " " " " " / " " " "/usr/libexec/java_home 참조)


요지에 대한 자세한 조사 내용.


(*) 현재 답변은 구식(MacOS El Capitan 또는 Sierra에서는 더 이상 유효하지 않음)이거나 단일 JDK에만 대응하거나 시스템 전체에 대응하지 않습니다.이 어떻게 수 있는지 하고 있습니다.$JAVA_HOME다만, 이것은 현재 셸과 거기에서 기동하는 셸에만 영향을 줍니다.OS 런처로부터 기동하는 애플리케이션에는 영향을 주지 않습니다(올바른 파일을 변경하고 로그아웃/로그인을 하지 않는 한 번거롭습니다).젠브도 마찬가지입니다.하지만 제가 알기로는 환경변수만 바뀌기 때문에 같은 제한이 있습니다.

답변에 , 저는 제 '아까운 마음', '아까운 마음이다'에과 같은 ..bash_profile (오류).zshrcMacOS 10.15+)의 경우 Java 9의 @elektromin의 경우입니다.

alias j12="export JAVA_HOME=`/usr/libexec/java_home -v 12`; java -version"
alias j11="export JAVA_HOME=`/usr/libexec/java_home -v 11`; java -version"
alias j10="export JAVA_HOME=`/usr/libexec/java_home -v 10`; java -version"
alias j9="export JAVA_HOME=`/usr/libexec/java_home -v 9`; java -version"
alias j8="export JAVA_HOME=`/usr/libexec/java_home -v 1.8`; java -version"
alias j7="export JAVA_HOME=`/usr/libexec/java_home -v 1.7`; java -version"

후 " " " 를 실행합니다.$ source .bash_profile

다음을 입력하여 Java 8로 전환할 수 있습니다.

$ j8
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)

/usr/libexec/java_home을 기반으로 한 작은 물고기 함수

function jhome
    set JAVA_HOME (/usr/libexec/java_home $argv)
    echo "JAVA_HOME:" $JAVA_HOME
    echo "java -version:"
    java -version
end

생선을 사용하지 않으면 bash에서도 비슷한 작업을 할 수 있습니다.

#!/bin/bash

jhome () {
  export JAVA_HOME=`/usr/libexec/java_home $@`
  echo "JAVA_HOME:" $JAVA_HOME
  echo "java -version:"
  java -version
}

그런 다음 javas do를 전환하려면:

$> jhome           #switches to latest java
$> jhome -v 1.7    #switches to java 1.7
$> jhome -v 1.6    #switches to java 1.6

참조: https://gist.github.com/kenglxn/1843d552dff4d4233271

젠브를 사용하는 것은 쉬운 방법입니다.

  1. jenv를 설치합니다.시작을 참조하십시오.

  2. 설정 jenv

    cd ~/.jenv/candidates/
    mkdir java
    cd java
    mkdir 1.7
    mkdir 1.8
    
  3. jdk 경로 심볼링크

    ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin ~/.jenv/candidates/java/1.7
    ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin ~/.jenv/candidates/java/1.8
    
  4. 모두 처리가 되었습니다.

switch 명령어:

jenv use java 1.8

디폴트 설정:

jenv default java 1.7

조금 까다롭지만 OS X 10.9(Mavericks)에 Java를 설치하는 방법에 대해 설명합니다.기본적으로, 당신은 당신의 가명을java.

단계별:

1후 JDK 1.7을 해야 .sudo ln -snf를 current "로 java이렇게 하려면 터미널을 열고 다음 명령을 발행합니다.

sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents \
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

「」가 것에 해 주세요.jdk1.7.0_51.jdkSDK를 사용합니다.

그럼 이번에는 을 설정해 .JAVA_HOMEjdk_1.7.0_xx.jdk을 사용하다터미널을 다시 열고 다음을 입력합니다.

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home"

해서 '어울리지 않다'를 수 요.export JAVA_HOME에 서다.bashrcjava를 in your Terminal()하는

JRE뿐만 아니라 JDK 설치

/usr/libexec/java_home -v 1.8

주다

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

다음 분.

touch .bash_profile

open -a TextEdit.app .bash_profile

TextEdit에서는 빈 페이지가 표시되며, 이 페이지를 입력할 수 있습니다.

: "Doc" :export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home

터미널:

export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"

다음 명령을 실행합니다.

javac -version

출력해야 합니다.

javac 1.8.0_111

dr;dr

행을 추가합니다.

export JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home'

파일까지

~/.bash_profile

(jdk1.8.0_downloads.jdk를 다운로드 버전으로 바꿉니다.)

source ~/.bash_profile

업데이트...

0.1.macOS Montrey는 v12.0.1 Cask를 Brew로 합니다에서는 4단계만 하면 .$ brew install ... ★★★★★★★★★★★★★★★★★」$ brew install --cask ...$ brew cask install ...@Shivam Sahil 댓글 덕분입니다.

MacOS Big Sur v11.4에 대한 경험을 공유하겠습니다. 이러한 문제를 해결하는 가장 좋은 방법은 Homebrew를 사용하여 Java를 설치하는 것입니다.

1 - Homebrew를 설치합니다.

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2 - Homebrew Cask를 설치합니다.

$ brew tap homebrew/cask-versions 
$ brew update 
$ brew tap homebrew/cask

3 - 최신 버전의 Java 설치

$ brew cask install java

4 - 필요한 다른 버전의 Java(Java8, Java11, Java13)를 설치합니다.

$ brew tap adoptopenjdk/openjdk

$ brew cask install adoptopenjdk8
$ brew cask install adoptopenjdk11
$ brew cask install adoptopenjdk13
$ brew cask install adoptopenjdk14

5 - 다른 버전의 Java 간에 전환

Java를 에 추가하면 됩니다..bash_profile ★★★★★★★★★★★★★★★★★」.zshrc.

이 경우 Java8, Java11, Java13 및 Java14를 전환할 수 있어야 합니다.

export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
export JAVA_13_HOME=$(/usr/libexec/java_home -v13)
export JAVA_14_HOME=$(/usr/libexec/java_home -v14)

alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java11='export JAVA_HOME=$JAVA_11_HOME'
alias java13='export JAVA_HOME=$JAVA_13_HOME'
alias java14='export JAVA_HOME=$JAVA_14_HOME'

# default to Java 14
java14

- 새로고침 6 - 새로고침.bash_profile ★★★★★★★★★★★★★★★★★」.zshrc에일리어스를 유효하게 하려면 , 다음의 순서를 실행합니다.

$ source ~/.bash_profile

또는

$ source ~/.zshrc

7 - 마지막으로 에일리어스를 사용하여 다른 Java 버전 간에 전환할 수 있습니다.

$ java8
$ java -version
java version "1.8.0_261"

상세한 것에 대하여는, 다음의 투고를 참조해 주세요.Brew를 사용하여 Mac에 Java를 설치하는 방법

jenv를 사용하면 Java 환경 매니저와 비슷합니다.사용 및 청소가 매우 간편합니다.

Mac 의 경우는, 다음의 순서에 따릅니다.

brew install jenv

git clone https://github.com/gcuisinier/jenv.git ~/.jenv

설치:bash 를 사용하고 있는 경우는, 다음의 순서에 따릅니다.

$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile

echo 'eval "$(jenv init -)"' >> ~/.bash_profile

$ exec $SHELL -l

원하는 버전의 JVM을 jenv에 추가합니다.

jenv add /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

jenv add /System/Library/Java/JavaVirtualMachines/1.8.0.jdk/Contents/Home

설치되어 있는 버전을 확인합니다.

jenv versions

사용할 Java 버전을 설정합니다.

jenv global oracle64-1.6.0

기본 프로세스를 사용하는 사용자를 위한 단말기를 사용하는 4가지 간단한 단계.:)

  1. echo $JAVA_HOME자바어 ::/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/

  2. cd /Library/Java/JavaVirtualMachines/설치하는 수 )로 합니다.

  3. ls 사용 폴더를 번호가 ).jdk1.8.0_191.jdk openjdk-11.0.2.jdk)
  4. export JAVA_HOME='/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home'Java ★★★★★★★★★★★★★★★★★★★★★★」

macOS El Capitan 이후는 다음 사이트에서 사용할 수 있는 상위 버전의 JDK를 선택합니다./Library/Java/JavaVirtualMachines , 을 「Da's Empled」, 「Do's Empledge」로 해 주세요.Info.plist 것, 다른 것)Info.plist.disabledOS の os os os os os os os 。

function setjdk() {
  if [ $# -ne 0 ]; then
    removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'
    if [ -n "${JAVA_HOME+x}" ]; then
      removeFromPath $JAVA_HOME
    fi
    export JAVA_HOME=`/usr/libexec/java_home -v $@`
    export PATH=$JAVA_HOME/bin:$PATH
  fi
}

, 합니다.프로파일에 넣어 단말기에서 사용합니다.setjdk 1.8,setjdk 1.7,setjdk 9★★★★★★★★★★★…

★★★가removeFromPath 이렇게 됩니다.

function removeFromPath() { export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;") }

.bash_profile에 추가하여 버전을 기본값으로 설정할 수 있습니다.

//Open bash profile
open ~/.bash_profile

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

// run bash profile
source ~/.bash_profile

단말기의 각 탭 및 특정 탭에 대해 JDK를 변경하는 경우에만 다음 방법을 고려하십시오(예:iTerm를 참조해 주세요.

★★★★★★★★★★★★★★★★★에/Library/Java/JavaVirtualMachines 두 경로 지정

  • openjdk8u275-b01
  • openjdk-11.0.9.1+1

★★★★★★★★★★★★★★★★★★★★★★★★에.bash_profile다음 파일을 제출합니다.

export JAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk-11.0.9.1+1/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

[ ] 를 Iterm- 첫 번째 탭 A를 사용하여 다음 명령을 실행합니다.

javac -version
javac 11.0.9.1

java -version
openjdk version "11.0.9.1" 2020-11-04
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.9.1+1)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.9.1+1, mixed mode)

출력은 올바르고 예상대로입니다.

그러나 두 번째B를 열고 기본 JDK를 덮어쓸 필요가 있는 경우 터미널에 다음과 같이 입력합니다.

export JAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk8u275-b01/Contents/Home/
export PATH=$JAVA_HOME/bin:$PATH

그리고나서

javac -version
javac 1.8.0_275

java -version
openjdk version "1.8.0_275"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_275-b01)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.275-b01, mixed mode)

잘 되고 있어요.물론 탭 B가 닫혀 있거나 새 C를 여는 경우 모두 다음 항목에 따라 작동합니다..bash_profile설정 )

를 덧붙이다~/.zshenv 파일

export JAVA_HOME=`/usr/libexec/java_home -v 1.8` 
  1. .zshrc(또는 bash_profile)에 다음 코드 행을 추가합니다.

j=' JAVA_company j='f'(){ JAVA_Company HOMEcompany=/usr/libexec/java_home -v $1};f'

  1. 세션에 저장:

$ 소스 .zshrc

  1. 명령 실행(예: j 13, j14, j1.8...)

$ j 1.8달러

설명 이것은 파라미터화 되어 있기 때문에, 투고된 다른 솔루션과 같이 스크립트를 갱신할 필요가 없습니다.JVM이 설치되어 있지 않으면 메시지가 표시됩니다.다음 예:

/Users/user/IDE/project $ j 1.8
/Users/user/IDE/project $ java -version
openjdk version "1.8.0_265"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_265-b01)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.265-b01, mixed mode)
/Users/user/IDE/project $ j 13
/Users/user/IDE/project $ java -version
openjdk version "13.0.2" 2020-01-14
OpenJDK Runtime Environment (build 13.0.2+8)
OpenJDK 64-Bit Server VM (build 13.0.2+8, mixed mode, sharing)
/Users/user/IDE/project $ j 1.7
Unable to find any JVMs matching version "1.7".

Apple의 공식 java_home(1) man 페이지에서 다음을 수행합니다.

**USAGE**

   /usr/libexec/java_home  helps  users  set a $JAVA_HOME in their login rc files, or provides a way for
   command-line Java tools to use the most appropriate JVM which can satisfy a minimum version or archi-
   tecture  requirement.  The --exec argument can invoke tools in the selected $JAVA_HOME/bin directory,
   which is useful for starting Java command-line tools from launchd plists without hardcoding the  full
   path to the Java command-line tool.

   Usage for bash-style shells:
          $ export JAVA_HOME=`/usr/libexec/java_home`

   Usage for csh-style shells:
          % setenv JAVA_HOME `/usr/libexec/java_home`

JDK 스위치 스크립트

위의 @Alex의 답변을 수정하여 Java 9의 코드를 수정하였습니다.

$ cat ~/.jdk
#!/bin/bash

#list available jdks
alias jdks="/usr/libexec/java_home -V"
# jdk version switching - e.g. `jdk 6` will switch to version 1.6
function jdk() {
  echo "Switching java version $1";

  requestedVersion=$1
  oldStyleVersion=8
  # Set the version
  if [ $requestedVersion -gt $oldStyleVersion ]; then
    export JAVA_HOME=$(/usr/libexec/java_home -v $1);
  else
    export JAVA_HOME=`/usr/libexec/java_home -v 1.$1`;
  fi

  echo "Setting JAVA_HOME=$JAVA_HOME"

  which java
  java -version;
}

Java 8로 전환

$ jdk 8
Switching java version 8
Setting JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
/usr/bin/java
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

Java 9로 전환

$ jdk 9
Switching java version 9
Setting JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
/usr/bin/java
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)

그래도 설정할 수 없는 경우.이 명령어를 사용합니다.

JAVA_'JAVA_' displicate =/usr/libexec/java_home -v 1.8

이걸 쓰셔야 돼요.

JAVA_'JAVA_' displicate =$(/usr/libexec/java_home -v 1.8)

분명 효과가 있을 거예요.

먼저 환경변수를 어디에 저장하는지 알아봅니다.

  1. emacs
  2. bash_profile
  3. zshrc 파일

환경변수를 설정하는 순서:-

  1. JAVA에서 jdk 다운로드

  2. 더블클릭으로 설치하다.

  3. 이제 파일에서 환경 변수 설정

    a. emacs.profile의 경우 이 링크를 사용하거나 아래의 스크린샷을 참조할 수 있습니다.

여기에 이미지 설명 입력

b. ZSH 프로파일 설정의 경우 -

1. export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home

2. source ~/.zshrc - Restart zshrc to reflect the changes.

3. echo $JAVA_HOME - make sure path is set up properly 
   ----> /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home

4. java -version 

   -->  java version "1.8.0_112"  Java(TM) SE Runtime Environment (build 1.8.0_112-b16)Java HotSpot(TM) 64-Bit Server VM (build 25.112-b16, mixed mode)

모두 설정 이제 JAVA 버전을 쉽게 업그레이드 또는 열화할 수 있습니다.

「 」에 다음의 합니다.~/.bash_profile자바어

export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)

alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java11='export JAVA_HOME=$JAVA_11_HOME'

# default to Java 8
java8

, macOS를 사용하여 하고 있습니다.brew.

: " " 를 사용하지 : " " " "bash를 들어 올바른 를 들어, 「」를 사용하고 있는 는, 다음과 같이 해 주세요.zsh 된다~/.zshrc

만약 당신이 피쉬를 사용하고 있고 mac을 사용하고 있고 JDK를 전환할 수 있다면, mac에서 아래를 참고하세요.

@kenglxn의 답변은 통하지 않았고 bcos가 글로벌한 -g를 설정하지 않았다는 것을 알았습니다!

~/.config/fish/config 아래에 입력합니다.물고기.

alias j8="jhome  -v 1.8.0_162"
alias j9="jhome  -v 9.0.1"

function jhome
    set -g -x JAVA_HOME (/usr/libexec/java_home $argv)
    echo "JAVA_HOME:" $JAVA_HOME
    echo "java -version:"
    java -version
end

funcsave jhome

인스톨 되어 있는 버전 / 마이너버전을 확인하려면 , 다음의 순서를 실행합니다.

/usr/libexec/java_home -V                                                                              579ms  Wed 14 Feb 11:44:01 2018
Matching Java Virtual Machines (3):
    9.0.1, x86_64:  "Java SE 9.0.1" /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
    1.8.0_162, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home
    1.8.0_121, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home

여러 버전이 있으며 특정 버전을 사용하여 무언가를 실행하는 경우 다음 예를 사용합니다.

/usr/libexec/java_home -v 1.7.0_75 --exec java -jar you-file.jar

이전에는 버전 간에 쉽게 전환하기 위해 .zshrc에서 에일리어스를 사용했지만 현재는 SDKMAN을 사용하고 있습니다.SDKMAN은 시스템의 기본 Java 설정, 새로운 Java 버전 다운로드 및 설치도 처리할 수 있습니다.

sdkman이 설치되면 노드 버전을 처리하기 위해 nvm 도구에서 가능한 것과 유사한 명령을 수행할 수 있습니다.

sdk list java 및 시 으로 사용 버전을 합니다.이러한 버전에는 할 수 있는 가 포함되어 .이러한 버전에는, 에서 사용할 수 있는 식별자도 포함됩니다.sdk use,sdk default ★★★★★★★★★★★★★★★★★」sdk install명령어를 지정합니다.

Amazon 0.로 해야 묻습니다.Amazon Corretto 11.0.8은 Amazon Corretto 11.0.8로 합니다.sdk install java 11.0.8-amzn

도 자주 은 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★..sdkmanrc해, 「」를하면,sdk env디렉토리에서 명령어를 실행하면 해당 디렉토리에서만 사용되는 툴버전을 설정할 수 있습니다. sdkman을 사용하여 .sdkman_auto_env=true★★★★★★ 。

sdkman은 gradle, kotlin, maven 등과 같은 JVM용 다른 도구도 지원합니다.

자세한 것은, https://sdkman.io/usage#env 를 참조해 주세요.

@markhellewell 답변을 바탕으로 몇 가지 에일리어스 함수를 만들었습니다.셸 스타트업 파일에 추가만 하면 됩니다.

#list available jdks
alias jdks="/usr/libexec/java_home -V"
# jdk version switching - e.g. `jdk 6` will switch to version 1.6
function jdk() { 
  echo "Switching java version"; 
  export JAVA_HOME=`/usr/libexec/java_home -v 1.$1`; 
  java -version; 
}

https://gist.github.com/Noyabronok/0a90e1f3c52d1aaa941013d3caa8d0e4

Linux(Ubuntu/Mint mate)에서 하는 방법은 다음과 같습니다.Mac도 마찬가지입니다.


설치 및 구성

순서:

  • [기본 - 부품]
  • jdk(.tgz 파일)를 수동으로 다운로드합니다.
  • 적절한 위치에서 압축을 풀고 이름을 바꿉니다.
    : ★/mnt/star/program/java/jdk-1.8
  • 소프트 링크를 만듭니다.소프트 링크는 나중에 스위치 Java 버전으로 변경됩니다.
    : ★ln -s /mnt/star/program/java/jdk-1.8 /mnt/star/program/java/java
    ★★★★★★★★★★★★★★★★★▼/mnt/star/program/java/java을 사용하다
  • ★★JAVA_HOME작작스스스스스스
    할 수 있습니다./etc/profile.d/eric.sh ""를 사용합니다~/.bashrc.
    : ★JAVA_HOME=/mnt/star/program/java/java
  • 때리다 java -versionJava ★★★★★★★★★★★★★★★★★★★★★★★★」
  • [더 많은 버전 - 파트]
  • 위의 절차와 마찬가지로 필요에 따라 Java 버전을 다운로드하여 설치합니다.

    /mnt/star/program/java/jdk-11
  • [스위치 - 부품]
  • »~/.bashrc 버전에 를 정의합니다

    _E_JAVA_HOME_11='/mnt/star/program/java/jdk-11'
    _E_JAVA_HOME_8='/mnt/star/program/java/jdk-8'
    # dir of default version,
    _E_JAVA_HOME_D=$_E_JAVA_HOME_8
  • »~/.bashrcJava java java java java java java java java java java java java java java java java.

    ## switch java version,
    alias jv11="rm $JAVA_HOME; ln -s $_E_JAVA_HOME_11 $JAVA_HOME"
    alias jv8="rm $JAVA_HOME; ln -s $_E_JAVA_HOME_8 $JAVA_HOME"
    # default java version,
    alias jvd="rm $JAVA_HOME; ln -s $_E_JAVA_HOME_D $JAVA_HOME"
    alias jv="java -version"
  • "" " " "''입니다.source ~/.bashrc이치노
  • 그러면 정의된 명령을 사용하여 전환할 수 있습니다.

명령어 - 위의 Configuration에서

명령어:

  • jv11
    11Java 11로
  • jv8
    8Java 8로
  • jvd
    버전으로 합니다. 버전은 "Java "로 됩니다.이 버전은 다음과 같습니다._E_JAVA_HOME_D를 참조해 주세요.
  • jv
    Java ★★★★★★★★★★★★★★★★★★★★★★★★」

출력 예:

eric@eric-pc:~$ jv
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

eric@eric-pc:~$ jv11
eric@eric-pc:~$ jv
java version "11.0.1" 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)

eric@eric-pc:~$ jvd
eric@eric-pc:~$ jv
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

eric@eric-pc:~$ 

메커니즘

  • 링크를 으로써 전환됩니다. 링크는, 「 Link」( 링크)」로 됩니다.을 사용법JAVA_HOME.

팁들

  • 때버전을 후 manor하고 manor 버전을 manor .machine은 manor 버전을 사용합니다.

    // dir,// "dir" 입니다.
    jdk1.8.0_191

    // 은 // 에 대한 jdk1.8.0_191
    jdk-8

    // 은 // 에 대한 jdk-8 ★★★★★★★★★★★★★★★★★」jdk-11
    java

  • 합니다.~/.bashrc하다
    하고 .~/.eric_var하려면 , 「」를 참조해 주세요.~/.bashrc는 그것을 「」:source $HOME/.eric_var를 참조해 주세요.

「JDK」가하는 리스트에 개별적으로 인스톨 를 포함할 수 ./usr/libexec/java_home -V 다음과 같이 하는 입니다.

sudo ln -s path/to/jdk /Library/Java/JavaVirtualMachines/jdk-[some-identifier].jdk

예를 들어 Android Studio에 포함된 JDK(쓰기 시 1.8.0_152)를 등록하려면 다음을 사용합니다.

sudo ln -s /Applications/Android\ Studio.app/Contents/jre/jdk /Library/Java/JavaVirtualMachines/jdk-android-studio.jdk

, 이제java_home는, 「JDK」아래에 를 합니다.Matching Java Virtual Machines을 사용하다

zshrc에 합니다.java-change [version]JDKJDK를

# set and change java versions
function java-change() {
  echo "----- old java version -----"
  java -version
  if [ $# -ne 0 ]; then
    export JAVA_HOME=`/usr/libexec/java_home -v $@`
    export PATH=$JAVA_HOME/bin:$PATH
  fi
  echo "----- new java version -----"
  java -version
}

Java 버전 확인: java - version

버전 간 전환: https://devqa.io/brew-install-java/

~/.profile_profile을 엽니다.

내보내기 JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)

내보내기 JAVA_11_HOME=$(/usr/libexec/java_home -v11)

별칭 java8='JAVA_ 내보내기HOME=$JAVA_8_HOME' 별칭 java11='JAVA_ 내보내기'HOME=$JAVA_11_HOME'

소스 ~/.profile_profile

java11 또는 java8로 전환할 때 java -version 명령에 올바른 버전이 표시되지 않습니다.

이 경우 mvn - version을 사용하여 올바른 Java 버전이 솔루션 구축에 사용되고 있는지 확인합니다.

언급URL : https://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-macos

반응형