macOS Mojave (10.14)에서 Lion (10.7)의 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에서도 작동합니다.
위의 답변 중 어느 것도 도움이되지 않았습니다. 나는 모든 대답이 더 오래되었다고 가정합니다.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
다음은 나를 위해 일했습니다. 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
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)
내 접근 방식은 다음과 같습니다
.bashrc
export JAVA6_HOME=`/usr/libexec/java_home -v 1.6`
export JAVA7_HOME=`/usr/libexec/java_home -v 1.7`
export JAVA_HOME=$JAVA6_HOME
# -- optional
# export PATH=$JAVA_HOME/bin:$PATH
따라서 J6과 J7 간 전환이 매우 쉽습니다.
Macbook air의 정확한 경로로 명시 적으로 설정해야했습니다.
단계는 다음과 같습니다
- 시도
echo $JAVA_HOME
하지 않으면 (경로가 표시되어 있음) 시도하지 않으면 경로를 사용하여 검색하십시오.sudo find /usr/ -name *jdk
- -로 Bash p 편집
sudo nano ~/.bash_profile
- JAVA Home에 대한 정확한 경로 추가 (위의 2 단계 경로)
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
- 저장 및 종료
- -를 사용하여 JAVA_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에서 잘 작동합니다.
Mac Yosemite의 경우
JDK 1.7.0_xx가 사용 중입니다
$ ls -ltar /usr/bin/java
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.7.0_xx.jdk/Contents/Home
ATO (Australian Tax Office)에서 AUSKEY를 사용하는 사람은 AUSKEY를 제거해야합니다. 이것은 내 JAVA_HOME 문제를 정리했습니다.
MAC 사용자에게는 더 이상 필요하지 않습니다. 야아!
High Sierra 10.13.4에서 Fish shell을 사용 하고 Brew를 통해 Java를 설치했습니다.
내가 실행하는 시스템에서 올바르게 설정하기 위해 자동으로 설정되지 않습니다 .
set -U JAVA_HOME (/usr/libexec/java_home)
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 버전을 갖도록합니다.
Mac의 Fish 터미널 사용자의 경우 (Linux에서도 사용할 수 있다고 생각합니다) 다음과 같이 작동합니다.
set -Ux JAVA_8 (/usr/libexec/java_home --version 1.8)
set -Ux JAVA_12 (/usr/libexec/java_home --version 12)
set -Ux JAVA_HOME $JAVA_8 //or whichever version you want as default
맥 사용자를 위해. 자바 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
심판 : http://qiita.com/seri_k/items/e978c1339ce51f13e297
참고 : https://stackoverflow.com/questions/6588390/where-is-java-home-on-macos-mojave-10-14-to-lion-10-7
'Programing' 카테고리의 다른 글
Lollipop의 최신 Chrome 버전에서 헤더 바와 주소 표시 줄의 색상을 변경하는 방법은 무엇입니까? (0) | 2020.02.10 |
---|---|
매개 변수가있는 RedirectToAction (0) | 2020.02.10 |
프로그래밍 방식으로 기본 UIButton을 작성하는 방법 (0) | 2020.02.10 |
Chrome DevTools의 요소에서 발생한 이벤트를 보려면 어떻게합니까? (0) | 2020.02.10 |
Subversion에서 이미 커밋 된 로그 메시지를 편집하는 방법은 무엇입니까? (0) | 2020.02.10 |