Mac OS X için Java JDK 7'yi yükledikten sonra - mvn sürümü hala java 1.6.0_31 sürümünü gösteriyor


117

Oracle, Mac OS X için 26 Nisan'da Java JDK 7'yi piyasaya sürdü. Yükleme talimatlarını takip ettim ve bir terminal penceresinde java sürümünü yaptığımda şunu elde ediyorum:

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)

Ancak mvn -versionterminal penceresinde yaptığımda şunu alıyorum:

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'in Java JDK 1.7.0_04'ü kullanmasını nasıl sağlayabilirim?

Yardım için teşekkürler.

Yanıtlar:


126

Sonunda cevabı burada buldum:

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

Bunun JAVA_HOME=$(/usr/libexec/java_home)yerine bir Mac'te kullanmalı ve ardından mevcut jdk'yi "Java Preferences.app" aracılığıyla ayarlamalısınız.

JAVA_HOME'u ~ / .profile içinde ayarlayın


4
Yakın zamanda Java 6'yı yükledim ve JavaPreferences.app'i bulamıyorum bcz mac şu anda Java için destek sağlamıyor. JavaPreferences kullanmadan jvm'mi nasıl ayarlayabilirim şimdi bana söyleyebilir misin?
amod

2
Kendi cevabınızı kabul edebilirsiniz. Bu, hepimize bunun sorunu çözdüğünü gösterecek. Ve 10 puanınız daha olacak :)
Ibolit

5
~ / .Bash_profile: export JAVA_HOME = $ (/ usr / libexec / java_home)
skytteren

1
Veya Java Preferences.app
mac

El Captian'da Java Tercihler Uygulamasını açamıyorum, Sistem Tercihleri ​​-> Java'dan gittim.
Wolf7176

34

Sorun şu ki, JavaVm.framework sürümlerindeki sembolik bağlantı "CurrentJDK" eski jdk'yi gösteriyor, bu nedenle CurrentJDK'yi en son olana (1.7.0_45) ayarlamak için aşağıdaki komutları kullandığımda çalışıyor

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

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


için doğru sürümü belirttiğinizden emin olun jdk1.7.0_45.jdk, benimkijdk1.7.0_51.jdk
ndequeker

1
Oracle geliştiricilerinin bunu neden otomatik olarak yapmadığını merak ediyorum? Benim için önemsiz değil. Bu cevap günümü kurtardı.
Ivan Voroshilin

bu benim için çalışmıyor. Ben el captian'dayım. mvn java sürümü değiştirmeyi reddediyor. JAVA_HOME doğru
Wolf7176

17

Yolu Java Tercihlerinden bulmak için deneyin /usr/libexec/java_home -X

Java7 girdim şöyle görünüyor:

<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, bunu yaptım ve jdk1.7'm için listelediği yol hiç mevcut değil :(
Dean Hiller

9

JAVA_HOMEOrtam değişkenini yeni JDK 1.7 konumuna değiştirmeniz gerekir .

JAVA_HOME'un tanımlanabileceği olası konumlar için bu soruya bakın . Bir terminalde, which javaJava kurulumunuzun yolunu bulmak için yazın ve ardından JAVA_HOMEbu yolu işaret edecek şekilde güncelleyin (ancak sondaki bin klasörünü hariç tutun ).


Mac OS X'te buna ihtiyacım olduğundan emin misin? Geçmişte bunu yapmak zorunda değildim. JAVA_HOME'u ayarlamam gerekirse, Java JDK 7 yüklemesi bana herhangi bir yükleme yolu bilgisi vermediğinden ve Mac'teki Java Tercihi yardımcı programı uygulaması JDK 1.7'ye giden bir yol göstermediğinden hangi yolu kullanacağımı nasıl bileceğim
Bruce Phillips

Yukarıdaki sorunuza bakarsanız, JAVA_HOME'un zaten tanımlanmış olduğunu ve şu anda eski 1.6 JDK'yı işaret ettiğini görebilirsiniz. OSX'te ortam değişkenlerinin nasıl değiştirileceğine aşina değilim, ancak Maven'ın varsayılan olarak kullandığı şey bu.
Nate

Sorun, bir Apple güncellemesinin normalde java sürümünü güncellemesi ve JAVA_HOME değerini ayarlamasıdır. JAVA_HOME değerini .bashrc'de ayarlamak Linux'ta olduğu gibi OS X'te çalışmaz. Ayrıca Oracle tarafından kurulan JDK 7'nin yolunu nerede bulamıyorum.
Bruce Phillips

Ayrıca Nate sorum, bağlantı verdiğiniz gönderinin bir kopyası DEĞİL. OS X kullanıyorum ve 26 Nisan'da piyasaya sürülen Mac OS X için Oracle yüklemesini kullanarak Java JDK 7'ye güncelledim.
Bruce Phillips

.Bashrc yerine hiçbir Mac .bash_profile kullanmaz ve kurulumu / System / Library / Java / JavaVirtualMachines / altında bulabilmeniz gerekir, burada yeni 1.7.0 Java sürümünüzü işaret etmeniz gerekir
peter_budo

7

Herhangi birinin Maven'i Mac OSX 'Mavericks' çalıştıran 64-bit bir Mac'e kurması durumunda, kendinize biraz zaman kazandırın ve Maven'i kurmaya çalışırken biraz saçınızı çekin. Bunu takip etmeye çalışıyordum (bu başarısız oldu çünkü java_home'un konumu Mavericks'te değişti:

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

Homebrew'i kurmanızı ve bu sayfadaki talimatları uygulamanızı öneren bu web sitesini bulana kadar saçımı çekiyordum: http://techspunky.blogspot.in/2013/10/how-to-install-maven-on-mac -osx-109.html

tamamlandığında $ maven -version çalışmadığında panik yapmayın, bunun yerine maven.apache.org/download.cgi'nin önerdiği $ mvn --version'ı kullanın.

İşe yaradı, ancak daha sonra Maven'in kullandığı Java SDK'sının Java sürümü olduğunu fark ettim: 1.6.0_65, bu sisteme yüklediğim en son SDK değil.

JAVA_HOME =/usr/libexec/java_home

Doğru SDK kullanıyordu: Maven home: /usr/local/Cellar/maven/3.1.1/libexec Java sürümü: 1.7.0_45, satıcı: Oracle Corporation Java ana sayfası: /Library/Java/JavaVirtualMachines/jdk1.7.0_45. jdk / İçindekiler / Ana Sayfa / jre Varsayılan yerel ayar: en_US, platform kodlaması: UTF-8 OS adı: "mac os x", sürüm: "10.9", arch: "x86_64", aile: "mac"

Başarı! ama bekleyin ... bir dahaki sefere terminali açtığımda ve mvn'yi çalıştırdığımda java 1.6 sürümüne geri döndü. WTH!

okuduklarımdan kaynaklanan bir tür varsayılan hata: echo JAVA_HOME = /usr/libexec/java_home -v 1.7| sudo tee -a / etc / mavenrc

ve şimdi:

Maven ana sayfası: /usr/local/Cellar/maven/3.1.1/libexec Java sürümü: 1.7.0_45, satıcı: Oracle Corporation Java ana sayfası: /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre Varsayılan yerel ayar: en_US, platform kodlaması: UTF-8 OS adı: "mac os x", sürüm: "10.9", arch: "x86_64", aile: "mac"


export JAVA_HOME=`/usr/libexec/java_home`JAVA_HOME varlığının doğru şekilde dışa aktarılmasını sağlamak için iyi çalıştı.
cdeszaq

4

Maven'in hala Java 6 kullanmasının nedeni, onu başlatan / usr / bin / mvn komut dosyasının, Java Tercihlerinde belirtildiği gibi mevcut Java sürümünü çözmek için doğru OS / X yöntemini kullanmamasıdır. Ayrıntılar için bu Maven sorununa bakın:

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

Oy vermek onu düzeltebilir; bu arada, / usr / bin / mvn betiğini bu konudaki yorumlarda ve yamada gösterildiği gibi değiştirirseniz, istediğiniz sonucu alırsınız.


2

Tamam makinemde. Evet, Oracle yükleyici işini tam olarak yapmadı ve 1.6 hala çalıştıktan sonra kafamı karıştırdı.

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)

ancak SDK HOME aslında hala 1.6'ya işaret eden bir sim bağlantısıdır.

/Library/Java/Home bulucuda GetInfo, /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Terminalde

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

Şekle gidin.

Burada 1.7 buldum ve bunu oluşturmak için kullanıyorum: /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home


0

Sanırım problem kısmen java başlatma mekanizmasından kaynaklanıyor. Eclipse'in kodumu Java7 altında çalıştırmasını sağlayabildim, ancak Eclipse'in hala Java6 altında çalıştığını düşünüyorum. Ayrıca, en son bir yıl önce derlenmiş ve jarbundler-2.1.0.jar (jvmversion = "1.6+" seçeneğiyle) kullanılarak oluşturulmuş bir java programım var. .App dosyasını çift tıkladığımda Java6 çalıştırıyor, ancak .app içindeki .jar dosyasına çift tıkladığımda Java7 çalıştırıyor.

Ayrıca, JAVA_HOME kullanmıyorum, ancak yine de soruda gösterilen doğru java sürümü "1.7.0_04" i alıyorum. JAVA_HOME kırmızı ringa gibi görünüyor. Belki Maven'in buna ihtiyacı var, ancak Eclipse bunu kullanmıyor gibi görünüyor ve jar dosyalarını da başlatmıyor.

Java Tercihleri ​​aracında Java7 ayarlandıktan sonra, .app java dosyalarının başlatılmasını etkilemiyor gibi görünüyor. Bununla birlikte, terminalden 'java sürümünün' iyi çalışmasını sağlar. Java7 seçeneği dışında her şeyin işaretini kaldırmayı denedim ve sonra Eclipse hiç çalışmadı.


0

JAVA_HOME'unuz yerel kullanıcının bash'ında bulunuyorsa, mvn, ayarladığınız JAVA_HOME ne olursa olsun sistemin mevcut java sürümünü seçecektir.

Bu nedenle, önce ' hangi mvn ' komutunu çalıştırın ve hangi yürütülebilir mvn'yi kullandığınızı kontrol edin. Bundan sonra o mvn dosyasını düzenleyin ve JAVA_HOME değişkenini tercih ettiğiniz java home olarak değiştirin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.