Mac OS X 용 Java JDK 7 설치 후-mvn -version에 여전히 Java 버전 1.6.0_31이 표시됨


117

Oracle은 4 월 26 일 Mac OS X 용 Java JDK 7을 출시했습니다. 설치 지침을 따랐고 터미널 창에서 java -version을 수행하면 다음과 같은 결과가 나타납니다.

java version "1.7.0_04"
Java(TM) SE Runtime Environment (build 1.7.0_04-b21)
Java HotSpot(TM) 64-Bit Server VM (build 23.0-b21, mixed mode)

그러나 mvn -version터미널 창에서 수행 하면 다음과 같은 결과가 나타납니다.

Apache Maven 3.0.2 (r1056850; 2011-01-08 18:58:10-0600)
Java version: 1.6.0_31, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x", version: "10.7.3", arch: "x86_64", family: "mac"

Maven이 Java JDK 1.7.0_04를 사용하도록하려면 어떻게해야합니까?

도와 주셔서 감사합니다.

답변:


126

마침내 여기에서 답을 찾았습니다.

http://www.adam-bien.com/roller/abien/entry/java_se_development_kit_7

당신은 사용해야 JAVA_HOME=$(/usr/libexec/java_home)Mac에서 대신하고 "자바 Preferences.app"를 통해 현재의 JDK를 설정합니다.

~ / .profile에 JAVA_HOME 설정


4
최근에 Java 6을 설치했는데 JavaPreferences.app을 찾을 수 없습니다. bcz mac은 이제 Java를 지원하지 않습니다. JavaPreferences를 사용하지 않고 어떻게 jvm을 설정할 수 있는지 이제 알려줄 수 있습니다.
amod

2
자신의 대답을 받아 들일 수 있습니다. 이것은 우리 모두에게 이것이이 문제를 해결했음을 보여줄 것입니다. 그리고 당신은 10 개의
폰트를

5
~ / .bash_profile에 추가했습니다. export JAVA_HOME = $ (/ usr / libexec / java_home)
skytteren

1
또는 Java Preferences.app을 사용하여 변경하는 대신 한 번에 "export JAVA_HOME = $ (/ usr / libexec / java_home -v 1.6)"을 수행 할 수 있습니다.
mac

El Captian에서 Java 환경 설정 앱을 열 수 없습니다. 시스템 환경 설정-> Java로 이동했습니다.
Wolf7176

34

문제는 JavaVm.framework 버전 내의 심볼릭 링크 "CurrentJDK"가 이전 jdk를 가리키고 있으므로 다음 명령을 사용하여 CurrentJDK를 최신 버전 (1.7.0_45)으로 설정하면 작동합니다.

cd /System/Library/Frameworks/JavaVM.framework/Versions
sudo rm CurrentJDK
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents CurrentJDK

참조 : http://java.dzone.com/articles/installing-jdk-7-mac-os-x


에 대한 올바른 버전을 지정했는지 확인하십시오 jdk1.7.0_45.jdk. 내 것jdk1.7.0_51.jdk
ndequeker 2014

1
Oracle 개발자가 자동으로 수행하지 않은 이유가 궁금합니다. 나에게는 사소한 일이 아닙니다. 이 대답은 내 하루를 구했습니다.
Ivan Voroshilin 2014

이것은 나를 위해 작동하지 않습니다. 나는 엘 캡션에 있습니다. mvn java 버전은 변경을 거부합니다. JAVA_HOME은 정확하다
Wolf7176

17

Java 환경 설정에서 경로를 찾으려면 다음을 시도하십시오. /usr/libexec/java_home -X

내 Java7 항목은 다음과 같습니다.

<dict>
    <key>JVMArch</key>
    <string>x86_64</string>
    <key>JVMBundleID</key>
    <string>com.oracle.java.7u04.jdk</string>
    <key>JVMEnabled</key>
    <true/>
    <key>JVMHomePath</key>
    <string>/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home</string>
    <key>JVMIsBuiltIn</key>
    <false/>
    <key>JVMName</key>
    <string>Java SE 7</string>
    <key>JVMPlatformVersion</key>
    <string>1.7</string>
    <key>JVMVendor</key>
    <string>Oracle Corporation</string>
    <key>JVMVersion</key>
    <string>1.7.0_04</string>
</dict>

6
grrrrr, 나는 그것을했고 그것이 내 jdk1.7에 대해 나열하는 경로가 전혀 존재하지 않습니다 :(
Dean Hiller

9

JAVA_HOME환경 변수를 새 JDK 1.7 위치 로 변경해야합니다 .

JAVA_HOME이 정의 될 수있는 가능한 위치 는 이 질문 을 참조하십시오. 터미널에 입력 which java하여 Java 설치 경로를 찾은 다음 JAVA_HOME해당 경로를 가리 키도록 업데이트 합니다 (그러나 후행 bin 폴더는 제외).


Mac OS X에서 필요합니까? 과거에는 그렇게 할 필요가 없었습니다. 내가 설정 JAVA_HOME을 필요로 할 경우 어떻게 알 수 있습니까 중동으로 어떤 JDK 1.7의 경로를 표시하지 않습니다 경로 정보와 맥에서 Java 환경 설정 유틸리티 응용 프로그램을 설치주지 않았다 자바 JDK 7의 설치로 사용하기에 어떤 경로를
Bruce Phillips

위의 질문을 보면 JAVA_HOME이 이미 정의되어 있으며 현재 이전 1.6 JDK를 가리키는 것을 볼 수 있습니다. OSX에서 환경 변수를 변경하는 방법에 익숙하지 않지만 Maven이 기본적으로 사용하는 것입니다.
Nate

문제는 Apple 업데이트가 일반적으로 Java 버전을 업데이트하고 JAVA_HOME 값을 설정한다는 것입니다. .bashrc에서 JAVA_HOME 값을 설정하면 Linux 에서처럼 OS X에서 작동하지 않습니다. 또한 Oracle에서 설치 한 JDK 7의 경로를 어디서 찾을 수 없습니다.
Bruce Phillips

또한 Nate 내 질문은 귀하가 링크 한 게시물의 중복이 아닙니다. 나는 OS X에있어 오라클 단지 4월 26 일 출시 된 맥 OS X에 대한 설치하여 Java JDK 7에 업데이트 한
브루스 필립스

.bashrc 대신 Mac은 .bash_profile을 사용하지 않으며 / System / Library / Java / JavaVirtualMachines /에서 새 1.7.0 Java 버전을 가리켜 야하는 설치 위치를 찾을 수 있어야합니다
peter_budo

7

누군가가 Mac OSX 'Mavericks'를 실행하는 64 비트 Mac에 Maven을 설치하는 경우 시간을 절약하고 Maven을 설치하려고하는 머리카락을 잡아 당기십시오. 나는 이것을 따르려고 노력했다 (java_home의 위치가 Mavericks에서 변경 되었기 때문에 실패했습니다.

http://maven.apache.org/download.cgi

이 웹 사이트를 찾을 때까지 머리카락을 뽑아 내고 있었는데,이 웹 사이트는 homebrew를 설치하고이 페이지의 지침을 따르도록 권장합니다 : http://techspunky.blogspot.in/2013/10/how-to-install-maven-on-mac -osx-109.html

완료되면 $ maven -version이 작동하지 않을 때 당황하지 말고 대신 maven.apache.org/download.cgi가 권장하는대로 $ mvn --version을 사용하십시오.

작동했지만 Maven이 사용하고있는 Java SDK가 시스템에 설치된 최신 SDK가 아닌 Java 버전 : 1.6.0_65라는 것을 알았습니다.

JAVA_HOME =을 설정하면/usr/libexec/java_home

올바른 SDK를 사용하고있었습니다 : Maven 홈 : /usr/local/Cellar/maven/3.1.1/libexec Java 버전 : 1.7.0_45, 공급 업체 : Oracle Corporation Java 홈 : /Library/Java/JavaVirtualMachines/jdk1.7.0_45. jdk / Contents / Home / jre 기본 로케일 : en_US, 플랫폼 인코딩 : UTF-8 OS 이름 : "mac os x", 버전 : "10.9", arch : "x86_64", 제품군 : "mac"

성공! 하지만 기다려 ... 다음에 터미널을 열고 mvn -v를 실행하면 Java 버전 1.6으로 돌아갔습니다. WTH!

내가 읽은 어떤 종류의 추정 버그 사용 : echo JAVA_HOME = /usr/libexec/java_home -v 1.7| sudo tee -a / etc / mavenrc

그리고 지금:

Maven 홈 : /usr/local/Cellar/maven/3.1.1/libexec Java 버전 : 1.7.0_45, 공급 업체 : Oracle Corporation Java 홈 : /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre 기본 로케일 : en_US, 플랫폼 인코딩 : UTF-8 OS 이름 : "mac os x", 버전 : "10.9", arch : "x86_64", 제품군 : "mac"


export JAVA_HOME=`/usr/libexec/java_home`JAVA_HOME var를 올바르게 내보내도록 잘 작동했습니다.
cdeszaq

4

Maven이 여전히 Java 6을 사용하는 이유는이를 실행하는 / usr / bin / mvn 스크립트가 Java 환경 설정에 지정된 현재 Java 버전을 확인하는 데 올바른 OS / X 방법을 사용하지 않기 때문입니다. 자세한 내용은이 Maven 문제를 참조하세요.

http://jira.codehaus.org/browse/MNG-4226

투표하면 문제가 해결 될 수 있습니다. 그 동안 해당 문제에 대한 주석 및 패치에 표시된대로 / usr / bin / mvn 스크립트를 변경하면 원하는 결과를 얻을 수 있습니다.


2

내 컴퓨터에서 좋아. 예, Oracle 설치 프로그램은 정확히 작업을 수행하지 않았고 1.6이 계속 실행 된 후에도 끝이 없다는 혼란 스러웠습니다.

java run time was updated 

java -version
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)

하지만 SDK HOME은 실제로 여전히 1.6을 가리키는 sim 링크입니다.

/Library/Java/Home Finder에서 GetInfo는 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

터미널에서

./Home -> /System/Library/Frameworks/JavaVM.framework/Home

그림을 이동.

여기서 1.7을 찾았고이를 사용하여 다음과 같이 빌드합니다. /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home


0

문제는 부분적으로 자바 시작 메커니즘에 있다고 생각합니다. Eclipse에서 Java7에서 내 코드를 실행할 수 있었지만 Eclipse 자체가 여전히 Java6에서 실행되고 있다고 생각합니다. 또한 1 년 전에 마지막으로 컴파일 된 Java 프로그램이 있으며 jarbundler-2.1.0.jar (jvmversion = "1.6+"옵션 포함)를 사용하여 빌드되었습니다. .app 파일을 두 번 클릭하면 Java6이 실행되지만 .app 내의 .jar 파일을 두 번 클릭하면 Java7이 실행됩니다.

또한 JAVA_HOME을 사용하지 않지만 여전히 질문에 표시된 올바른 Java 버전 "1.7.0_04"를 얻습니다. JAVA_HOME은 붉은 청어 같네요. Maven에 필요할 수도 있지만 Eclipse에서 사용하지 않는 것 같고 jar 파일을 시작하지도 않습니다.

그리고 Java Preferences 도구에서 Java7을 설정 한 후 .app Java 파일 실행에 영향을 미치지 않는 것 같습니다. 그러나 터미널에서 'java -version'이 잘 작동하도록합니다. Java7 옵션을 제외한 모든 항목을 선택 취소하려고 시도했지만 Eclipse가 전혀 실행되지 않습니다.


0

JAVA_HOME이 로컬 사용자의 bash에있는 경우 mvn은 설정 한 JAVA_HOME에 관계없이 시스템의 현재 Java 버전을 선택합니다.

따라서 먼저 ' which mvn ' 명령을 실행하고 사용중인 실행 파일 mvn을 확인하십시오. 그 후 편집이 MVN 파일JAVA_HOME 환경 변화 당신의 선호하는 자바 홈으로 변수를.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.