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…
쉘의 init 파일에 라인을 추가 하십시오.
Bash의 경우 ( antonyh가 명시한 대로 ) :
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
물고기의 경우 (오르 무 린이 명시한대로)
set -x JAVA_HOME (/usr/libexec/java_home -d64 -v1.8)
답변
이 답변은 macOS El Capitan 이상 (Sierra, High Sierra, Mojave) 에 개발 목적으로 여러 버전의 JDK 가 설치되어 있을 때 (현재 실행중인 쉘뿐만 아니라) 시스템 전체에서 Java 버전 을 제어 하는 방법을 해결하려는 시도 입니다 . 내가 알 수있는 한 현재 답변 중 어느 것도 그렇게하지 않습니다 (*).
개발자는 여러 개의 JDK를 사용하며 하나에서 다른 것으로 쉽게 전환하려고합니다. 일반적으로 일반적인 용도로는 안정적인 최신 버전이 있고 테스트에는 다른 최신 버전이 있습니다. 그러나 나는 시스템이 (예를 들어 IDE를 시작할 때) 현재 가지고있는 최신 “이른 액세스”버전을 사용하기를 원하지 않습니다. 시스템의 기본값을 제어하고 싶습니다. 최신 안정이어야합니다.
다음 접근 방식은 Oracle JDK 또는 OpenJDK ( 2018 년 10 월 중순 이후에 생성 된 AdoptOpenJDK의 빌드 포함 ) 와 함께 Java 7 ~ 12 에서 작동합니다 (이 문서 작성 시점에 초기 액세스시 ).
타사 도구가없는 솔루션 :
- 모든 JDK를 기본 위치 () 아래에 두십시오
/Library/Java/JavaVirtualMachines
. 시스템은 기본적으로 가장 높은 버전을 선택합니다. - JDK가 기본적으로 선택되지 않도록 제외하려면 이름을
Contents/Info.plist
로 변경하십시오Info.plist.disabled
. 이 JDK는 여전히 JDK를$JAVA_HOME
가리킬 때 사용 하거나 스크립트 또는 구성에서 명시 적으로 참조 할 수 있습니다. 시스템java
명령으로 간단히 무시됩니다 .
시스템 런처는 Info.plist
파일 이있는 것 중에서 가장 높은 버전의 JDK를 사용 합니다.
대체 JDK가있는 쉘에서 작업 할 때 기존 답변 ( jenv
또는 사용자 정의 별명 / 스크립트 /usr/libexec/java_home
등) 중에서 방법을 선택하십시오 .
이 요점에서 조사의 세부 사항 .
(*) 현재 답변은 더 이상 사용되지 않거나 (MacOS El Capitan 또는 Sierra에는 더 이상 유효하지 않음) 단일 JDK 만 해결하거나 시스템 전체 측면을 다루지 않습니다. 많은 사람들 $JAVA_HOME
이 변경하는 방법을 설명 하지만 이것은 현재 쉘과 그 쉘에서 시작된 내용에만 영향을 미칩니다. 올바른 파일과 로그 아웃 / 로그인을 변경하지 않는 한 OS 런처에서 시작한 응용 프로그램에는 영향을 미치지 않습니다. jenv와 동일하지만 멋지지만 모두 환경 변수 만 변경한다고 말할 수있는 한 동일한 제한이 있습니다.
답변
위의 답변에 덧붙여, 다음 줄을 내 .bash_profile
(또는 .zshrc
MacOS 10.15+)에 넣었습니다.
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
}
그런 다음 Java 간을 전환하려면 다음을 수행하십시오.
$> jhome #switches to latest java
$> jhome -v 1.7 #switches to java 1.7
$> jhome -v 1.6 #switches to java 1.6
답변
약간 까다 롭지 만 OS X 10.9에 Java 설치 (매버릭스)에 설명 된 단계를 따르십시오 . 기본적으로 별칭을로 업데이트해야합니다 java
.
단계별 :
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.jdk
설치 한 SDK 버전에 따라 디렉토리 가 변경 될 수 있습니다.
이제 설치된 JAVA_HOME
위치를 가리 키도록 설정해야합니다 jdk_1.7.0_xx.jdk
. 터미널을 다시 열고 다음을 입력하십시오.
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home"
파일에 export JAVA_HOME
위 의 줄을 추가 .bashrc
하여 터미널에서 Java를 영구적으로 가질 수 있습니다
답변
jenv를 사용하는 것은 쉬운 방법입니다.
1. jenv 설치
컬 -s get.jenv.io | 세게 때리다
2. jenv 구성
cd ~ / .jenv / 후보자 / mkdir 자바 CD 자바 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. 모든 설정
스위치 명령 :
jenv 사용 자바 1.8
기본값으로 설정:
jenv 기본 자바 1.7
답변
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은 빈 페이지를 보여줄 수 있습니다.
문서에 추가 :
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
