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.