Po zainstalowaniu Java JDK 7 Dla Mac OS X-mvn-version nadal pokazuje java w wersji 1.6.0 31

Oracle wydało Javę JDK 7 26 kwietnia Dla Mac OS X. postępowałem zgodnie z instrukcjami instalacji i kiedy robię java-version w oknie terminala dostaję:

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)

Jednak gdy robię mvn -version w oknie terminala dostaję:

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"

Jak mogę zmusić Mavena do używania Java JDK 1.7.0_04?

Dzięki za pomoc.
Author: dmolony, 2012-04-26

9 answers

Wreszcie znalazłem odpowiedź tutaj:

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

Powinieneś użyć JAVA_HOME=$(/usr/libexec/java_home) zamiast na Macu, a następnie ustawić bieżący jdk za pomocą "Java Preferences.app".

Ustaw JAVA_HOME w~/.Profil

 124
Author: Bruce Phillips,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-18 12:25:32

Problem polega na tym, że dowiązanie symboliczne "CurrentJDK" wewnątrz wersji JavaVm.framework wskazuje na stary jdk, więc kiedy użyłem następujących poleceń, aby ustawić bieżący JDK na najnowszy (1.7.0_45) działa

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

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

 34
Author: Mahmoud Adam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-23 09:26:03

Aby znaleźć ścieżkę z preferencji Java, spróbuj /usr/libexec/java_home -X

Mój wpis Java7 wygląda tak:

<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>
 17
Author: dmolony,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-30 04:45:59

Należy zmienić zmienną środowiskową JAVA_HOME na nową lokalizację JDK 1.7.

Spójrz na to pytanie dla możliwych lokalizacji, w których można zdefiniować JAVA_HOME. W terminalu wpisz which java, aby znaleźć ścieżkę instalacji Java, a następnie zaktualizuj JAVA_HOME, aby wskazać na tę ścieżkę(ale wyklucz końcowy folder bin).

 9
Author: Nate,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:46:26

W przypadku, gdy ktoś instaluje Mavena na 64-bitowym Macu z systemem Mac OSX' Mavericks ' zaoszczędź trochę czasu i trochę włosów próbując zainstalować Mavena. Próbowałem podążać za tym (co się nie udało, ponieważ lokalizacja java_home zmieniła się na Mavericks:

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

Ciągnąłem włosy, dopóki nie znalazłem tej strony, która zaleca zainstalowanie homebrew i postępuj zgodnie z instrukcjami na tej stronie: http://techspunky.blogspot.in/2013/10/how-to-install-maven-on-mac-osx-109.html

Po zakończeniu nie panikuj, gdy $ Maven-version nie działa, zamiast tego użyj $mvn --version jako maven.apache.org/download.cgi polecam.

Zadziałało, ale potem zauważyłem, że Maven używa Java SDK w wersji Java: 1.6.0_65, która nie jest najnowszym SDK zainstalowanym w systemie.

Po ustawieniu JAVA_HOME=/usr/libexec/java_home

Używało poprawnego SDK: Maven home: / usr / local/Maven / 3.1.1 / libexec Wersja Java: 1.7.0_45, sprzedawca: Oracle Corporation Java home: /Library / Java / JavaVirtualMachines / jdk1.7.0_45.jdk / spis treści / Home / jre Domyślne locale: en_US, kodowanie platformy: UTF-8 Nazwa systemu operacyjnego:" mac os X", Wersja:" 10.9", arch:" x86_64", rodzina:"mac"

Sukces! ale czekaj... następnym razem, gdy otworzyłem terminal i uruchomiłem mvn-v, wrócił on do Javy w wersji 1.6. WTH!

To jakiś niby bug z tego co czytałem użyj: echo JAVA_HOME=/usr/libexec/java_home -v 1.7 / sudo tee -a / etc / mavenrc

A teraz:

Maven home: / usr / local/Cellar / maven / 3.1.1 / libexec Wersja Java: 1.7.0_45, sprzedawca: Oracle Corporation Java home: /Library / Java / JavaVirtualMachines / jdk1.7.0_45.jdk / spis treści / Home / jre Domyślne locale: en_US, kodowanie platformy: UTF-8 Nazwa systemu operacyjnego:" mac os X", Wersja:" 10.9", arch:" x86_64", rodzina:"mac"

 6
Author: ConfusedDeer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-25 06:04:51

Powodem, dla którego Maven nadal używa Javy 6, jest to, że skrypt/usr/bin/mvn, który go uruchamia, nie używa właściwej metody OS / X do rozwiązywania bieżącej wersji Javy, jak określono w preferencjach Javy. Zobacz ten problem Maven po szczegóły:

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

Głosowanie może to naprawić; w międzyczasie, jeśli zmienisz skrypt / usr / bin / mvn, jak pokazano w komentarzach i łatkach na ten temat, otrzymasz pożądany rezultat.

 4
Author: Robert Elliot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-08 21:58:09

Ok na mojej maszynie. Tak, instalator Oracle nie wykonał dokładnie swojej pracy i zdezorientował mnie bez końca po tym, jak 1.6 nadal działał.

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)

Ale SDK HOME jest w rzeczywistości łączem sim nadal wskazującym na 1.6

/Library/Java/Home w Finderze GetInfo punkty do /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

W Terminalu

./Home -> /System/Library/Frameworks/JavaVM.framework/Home
/ Align = "left" /

Znalazłem 1.7 tutaj i używam go do budowania z: /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home

 2
Author: dave,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-28 18:06:59

Myślę, że problem leży po części w mechanizmie uruchamiania Javy. Udało mi się zmusić Eclipse do uruchomienia mojego kodu pod Java7, ale myślę, że samo eclipse nadal działa pod Java6. Mam również program java, który został ostatnio skompilowany rok temu i zbudowany przy użyciu jarbundler-2.1.0.jar (z opcją jvmversion = "1.6+"). Kiedy klikam dwukrotnie .plik aplikacji uruchamia Java6, ale po dwukrotnym kliknięciu .plik jar wewnątrz .aplikacja działa w Java7.

Poza tym nie używam JAVA_HOME, ale i tak dostaję poprawna wersja java "1.7.0_04" pokazana w pytaniu. JAVA_HOME Może Maven tego potrzebuje, ale Eclipse go nie używa, podobnie jak uruchamianie plików jar.

I po ustawieniu Java7 w narzędziu Java Preferences nie ma to wpływu na uruchomienie .pliki Java aplikacji. Jednak to sprawia, że' java-version ' z terminala działa dobrze. Próbowałem odkleić wszystko oprócz opcji Java7, a potem Eclipse w ogóle nie działało.

 0
Author: dmolony,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-30 06:42:29

Jeśli JAVA_HOME znajduje się w bash użytkownika lokalnego, mvn wybierze aktualną wersję java systemu bez względu na to, jaką JAVA_HOME ustawisz.

Dlatego najpierw uruchom polecenie " which mvn " i sprawdź, którego pliku wykonywalnego mvn używasz. Następnie edytuj ten plik mvn i Zmień zmienną JAVA_HOME na preferowany Dom Javy.

 0
Author: Ankit Bhatnagar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-02 12:23:47