Programing

macOS Mojave (10.14)에서 Lion (10.7)의 JAVA_HOME은 어디에 있습니까?

lottogame 2020. 2. 10. 22:03
반응형

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의 정확한 경로로 명시 적으로 설정해야했습니다.

단계는 다음과 같습니다

  1. 시도 echo $JAVA_HOME하지 않으면 (경로가 표시되어 있음) 시도하지 않으면 경로를 사용하여 검색하십시오.sudo find /usr/ -name *jdk
  2. -로 Bash p 편집 sudo nano ~/.bash_profile
  3. JAVA Home에 대한 정확한 경로 추가 (위의 2 단계 경로) export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
  4. 저장 및 종료
  5. -를 사용하여 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를 업그레이드 한 후 다음과 같은 문제가 발생했습니다.

  1. cmd> vi ~ / .bash_profile

  2. JAVA_HOME에 대한 라인 추가 / 업데이트 : export JAVA_HOME = "/ Library / Java / JavaVirtualMachines / jdk1.7.0_15.jdk / Contents / Home"

  3. 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



반응형