Java는 최신 버전의 macOS에 대한 선택적 패키지입니다.
그러나 일단 설치되면 JAVA_HOME 환경 변수가 올바르게 설정되지 않은 것처럼 보입니다 .
Java는 최신 버전의 macOS에 대한 선택적 패키지입니다.
그러나 일단 설치되면 JAVA_HOME 환경 변수가 올바르게 설정되지 않은 것처럼 보입니다 .
답변:
으로 자바 옵션 패키지 또는 오라클 JDK 당신의 다음 줄 중 하나를 추가 설치 ~ / .bash_profile에 따라 환경 변수를 설정합니다 파일을.
export JAVA_HOME="$(/usr/libexec/java_home -v 1.6)"
or
export JAVA_HOME="$(/usr/libexec/java_home -v 1.7)"
or
export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"
업데이트 : Jilles van Gurp 응답을 기반으로 -v 플래그가 추가되었습니다 .
/usr/libexec/java_home
디렉토리가 아니라 실행 파일입니다. 현재 구성된 JAVA_HOME을 출력하고 실제로 변경하지는 않습니다. 그것이 Java Preferences 앱의 용도입니다. 제 경우에는 깨져서 실제로 JVM을 올바르게 변경하지 않습니다. 1.7 JVM을 나열하지만 실제로 출력을 변경하지 않고 원하는 모든 항목을 토글 / 언 글링 및 드래그 앤 드롭 할 수 있습니다 /usr/libexec/java_home
.
Lion에서 Oracle의 1.7.0 u6을 설치하고 환경 설정에서 기본값으로 설정 한 후에도 여전히 사과 1.6 java 홈을 반환했습니다. 실제로 나를 위해 유일한 해결책은 JAVA_HOME을 수동으로 설정하는 것입니다.
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_06.jdk/Contents/Home/
최소한 명령 행에서 실행할 때는 1.7을 사용합니다. /usr/libexec/java_home
여전히 1.6을 고집합니다.
업데이트 : OSX의 명령 줄에서 Java 이해 가 어떻게 작동하는지 더 잘 설명합니다.
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
그렇게하는 방법입니다. 이것을 1.8로 업데이트하면 잘 작동합니다.
나에게 Mountain Lion 10.8.2의 경우 가장 많이 투표 한 솔루션이 효과가 없습니다. Oracle을 통해 jdk 1.7을 설치하고 homebrew의 maven을 설치했습니다.
내 솔루션은 homebrew에서 설치 한 hadoop의 hadoop-env.sh 파일에서 가져온 것입니다. ~ / .bash_profile에 아래 문장을 추가하면 작동합니다.
export JAVA_HOME="$(/usr/libexec/java_home)"
이 솔루션은 또한 Oracle에서 Java 1.8이 설치된 OS X Yosemite에서도 작동합니다.
export JAVA_HOME="$(/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home)"
위의 답변 중 어느 것도 도움이되지 않았습니다. 나는 모든 대답이 더 오래되었다고 가정합니다.OS X
OS X Yosemite 10.10의 경우 다음 단계를 수행하십시오.
좋아하는 텍스트 편집기를 사용하여 엽니 다. ~/.bash_profile
//This command will open the file using vim
$ vim ~/.bash_profile
파일에 다음 줄을 추가하고 저장하십시오 (: vim의 경우 "x").
export JAVA_HOME=$(/usr/libexec/java_home)
그런 다음 터미널에 다음 두 명령을 입력하여 출력을보십시오.
$ source ~/.bash_profile
$ echo $JAVA_HOME
두 번째 줄에서는 .bash_profile
파일 내용을 업데이트 합니다.
Java 9 및 일부 별명에 대한 업데이트.
에서 .bash_profile
:
export JAVA_HOME8=`/usr/libexec/java_home --version 1.8`
export JAVA_HOME9=`/usr/libexec/java_home --version 9`
최신 버전에서는 9
그렇지 않습니다 1.9
.
활성 Java를 설정하십시오.
export JAVA_HOME=$JAVA_HOME8
export PATH=$JAVA_HOME/bin:$PATH
다른 버전간에 전환하기위한 추가 별칭 :
alias j8='export JAVA_HOME=$JAVA_HOME8; export PATH=$JAVA_HOME/bin:$PATH'
alias j9='export JAVA_HOME=$JAVA_HOME9; export PATH=$JAVA_HOME/bin:$PATH'
터미널에서 테스트 :
% j8
% java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
% j9
% java -version
java version "9"
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)
편집 : Java 10 업데이트
export JAVA_HOME10=`/usr/libexec/java_home --version 10`
alias j10='export JAVA_HOME=$JAVA_HOME10; export PATH=$JAVA_HOME/bin:$PATH'
편집 : Java 11 업데이트
export JAVA_HOME11=`/usr/libexec/java_home --version 11`
alias j11='export JAVA_HOME=$JAVA_HOME11; export PATH=$JAVA_HOME/bin:$PATH'
그것을 기대하기 때문에 위, 아마존의 EC2 도구로 나를 위해 작동하지 않았다 bin/java
등 아래 JAVA_HOME
. /System/Library/Frameworks/JavaVM.framework/Home
일했다.
OS X의 경우 다음을 수행 할 수 있습니다.
export JAVA_HOME=`/System/Library/Frameworks/JavaVM.framework/Versions/Current/commands/java_home`
Mac OS X Lion에서 visualgc를 실행하도록 설정하려면 다음을 사용했습니다.
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
/usr/libexec/java_home
어떻게 다른 가요? 명령은 / usr / libexec 디렉토리 / JAVA_HOME은 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 반환
다음은 나를 위해 일했습니다. Java 8이 설치된 OSX Yosemite에서 ZSH를 사용하고 있습니다.
다음 명령 /usr/libexec/java_home
은 JDK 홈에 대한 경로를 생성합니다.
/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
귀하 ~/.zshrc
의
export JAVA_HOME = "/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home"
더 나은 (보다 업그레이드 가능한) 방법은 다음을 사용하는 것입니다.
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
bin
홈 아래에 있기 때문에 AWS에서도 작동합니다.
1.7.0_21-b12와 같은 최신 Oracle JVM은 다음과 같이 설치됩니다.
/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
/usr/libexec/java_home
도구는 이러한 Java 버전에 대한 오류를 반환합니다.
macOS Mojave 10.14.1 및 JAVA 11.0.1의 경우 프로파일을
export JAVA_HOME=$(/usr/libexec/java_home)
터미널 키를 눌러 확인하십시오.
$JAVA_HOME/bin/java -version
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)
Macbook air의 정확한 경로로 명시 적으로 설정해야했습니다.
단계는 다음과 같습니다
echo $JAVA_HOME
하지 않으면 (경로가 표시되면) 경로를 사용하여 검색하십시오.sudo find /usr/ -name *jdk
sudo nano ~/.bash_profile
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
echo $JAVA_HOME
JAVA 8을 사용하는 Macbook Air에서 MACOS MOJAVE-10.14.2 (18C54)를 실행하고 있습니다.
Mac OS X 10.9의 경우 Oracle에서 최신 버전의 JRE를 설치 한 다음 JAVA_HOME을 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home으로 재설정합니다.
나는 더 좋은 방법이 있다고 확신하지만 나를 일으켰다.
hughsmac : ~ hbrien $ echo $ JAVA_HOME / 라이브러리 /Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
OSX Yosemite, ZSH 및 Java SE Runtime Environment 8에서 다음을 수행해야했습니다.
$ sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands /System/Library/Frameworks/JavaVM.framework/Versions/Current/bin
~ / .zshrc에서 JAVA_HOME을
export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/Current"
Mac OS를 업그레이드 한 후 다음과 같은 문제가 발생했습니다.
cmd> vi ~ / .bash_profile
JAVA_HOME에 대한 라인 추가 / 업데이트 : export JAVA_HOME = "/ Library / Java / JavaVirtualMachines / jdk1.7.0_15.jdk / Contents / Home"
cmd> source ~ / .bash_profile 또는 새 터미널을 엽니 다
jdk 버전이 다를 수 있다고 생각하므로 / Library / Java / JavaVirtualMachines / 아래에있는 버전을 사용하십시오.
Mac OS X (Yosemite)에서 여러 버전의 JDK가 필요한 경우 자동 전환을 위해 스크립트를 추가하는 것이 도움이 될 수 있습니다.
~ / .bash_profile 을 편집 하고 다음을 추가하십시오.
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
}
function removeFromPath() {
export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
}
setjdk 1.7
스크립트는 PATH 에서 다른 JDK 버전을 먼저 제거 하여 새 JDK 버전을 방해하지 않도록합니다. 그런 다음 설치된 JDK 버전을 나열하는 명령 인 / usr / libexec / java_home 을 영리하게 사용 합니다. -v 인수는 말한다 JAVA_HOME을 예를 들어 1.7, 제공된 버전으로 JDK의 경로를 반환합니다. 또한 새로 찾은 JAVA_HOME 디렉토리 의 bin 디렉토리를 가리 키도록 PATH 를 업데이트합니다 . 결국 우리는 단순히 다음을 사용하여 함수를 실행할 수 있습니다
setjdk 1.7
1.7 분기의 최신 설치된 JDK 버전을 선택합니다. 특정 버전을 선택하려면 간단히 실행할 수 있습니다
setjdk 1.7.0_51
대신에. 버전 선택 방법에 대한 자세한 내용을 보려면 / usr / libexec / java_home -V 를 실행하십시오 .
PS ~ / .bash_profile 을 저장 한 후 소싱하는 것을 잊지 마십시오 .
이 답변은 Lion이 아닌 Mountain Lion 과 관련이 있습니다. AWS Command Line Tools를 위해이 작업을 수행해야했습니다. AWS 문서 에 따르면 running 은를which java
반환합니다 /usr/bin/java
.
그래서 나는 JAVA_HOME=/usr
내 설정 했습니다 .bashrc
.
분명히, 그것은 모두 작동하게 만드는 /usr/bin/java
상징적 인 링크 /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
입니다.
최신 정보
아래 설명에서 언급했듯이이 JAVA_HOME
값은 JAVA_HOME
환경 변수를 AWS Command Line Tools 이외의 용도로 사용할 경우 이상적인 솔루션이 아닙니다 . 그러나 문서에 나와있는 것처럼 AWS Command Line Tools에서 잘 작동합니다.
netbeans.conf
파일 에 1.8 jdk 버전의 java_home을 설정 하십시오.
/Applications/NetBeans/NetBeans 8.2.app/Contents/Resources/NetBeans/etc/netbeans.conf
주석 해제 라인 :
netbeans_jdkhome="path/to/jdk"
내 경우에는 1.8 jdk의 경로를 설정하십시오.
netbeans_jdkhome="/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home"
이 접근법은 Mac OS에서 여러 jdk 버전을 갖도록합니다.
맥 사용자를 위해. 자바 8 추가
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
# JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
자바 6 :
export JAVA_HOME=`/usr/libexec/java_home -v 1.6`
# JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home