Oracle hat Java JDK 7 am 26. April für Mac OS X veröffentlicht. Ich habe die Installationsanweisungen befolgt und wenn ich Java-Version in einem Terminalfenster mache, bekomme ich:
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)
Wenn ich es jedoch mvn -version
im Terminalfenster mache, bekomme ich:
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"
Wie kann ich Maven dazu bringen, das Java JDK 1.7.0_04 zu verwenden?
Danke für die Hilfe.
Das Problem ist, dass der symbolische Link "CurrentJDK" in den Versionen von JavaVm.framework auf das alte JDK verweist. Wenn ich also die folgenden Befehle verwendet habe, um das CurrentJDK auf das neueste (1.7.0_45) zu setzen, funktioniert es
Referenz: http://java.dzone.com/articles/installing-jdk-7-mac-os-x
quelle
jdk1.7.0_45.jdk
jdk1.7.0_51.jdk
Versuchen Sie es mit dem Pfad in den Java-Einstellungen
/usr/libexec/java_home -X
Mein Java7-Eintrag sieht folgendermaßen aus:
quelle
Sie müssen die
JAVA_HOME
Umgebungsvariable in den neuen JDK 1.7-Speicherort ändern .Suchen Sie in dieser Frage nach möglichen Speicherorten, an denen JAVA_HOME definiert sein könnte. Geben Sie in einem Terminal ein,
which java
um den Pfad Ihrer Java-Installation zu ermitteln, und aktualisieren Sie dannJAVA_HOME
, um auf diesen Pfad zu verweisen (schließen Sie jedoch den Ordner für den nachgestellten Bin aus).quelle
Falls jemand Maven auf einem 64-Bit-Mac installiert, auf dem Mac OSX 'Mavericks' ausgeführt wird, sparen Sie sich Zeit und Haare beim Versuch, Maven zu installieren. Ich habe versucht, dem zu folgen (was fehlgeschlagen ist, weil sich der Speicherort von java_home auf Mavericks geändert hat:
http://maven.apache.org/download.cgi
Ich habe mir die Haare ausgezogen, bis ich diese Website gefunden habe, auf der empfohlen wird, Homebrew zu installieren und den Anweisungen auf dieser Seite zu folgen: http://techspunky.blogspot.in/2013/10/how-to-install-maven-on-mac -osx-109.html
Sobald der Vorgang abgeschlossen ist, geraten Sie nicht in Panik, wenn $ maven -version nicht funktioniert. Verwenden Sie stattdessen $ mvn --version, wie von maven.apache.org/download.cgi empfohlen.
Es hat funktioniert, aber dann habe ich festgestellt, dass das Java SDK, das Maven verwendet, die Java-Version 1.6.0_65 ist. Dies ist nicht das neueste SDK, das ich auf dem System installiert habe.
Sobald ich das JAVA_HOME = gesetzt habe
/usr/libexec/java_home
Es wurde das richtige SDK verwendet: Maven home: /usr/local/Cellar/maven/3.1.1/libexec Java-Version: 1.7.0_45, Hersteller: Oracle Corporation Java-Home: /Library/Java/JavaVirtualMachines/jdk1.7.0_45. jdk / Contents / Home / jre Standardgebietsschema: en_US, Plattformcodierung: UTF-8 Betriebssystemname: "mac os x", Version: "10.9", Bogen: "x86_64", Familie: "mac"
Erfolg! aber warte ... das nächste mal, als ich das terminal öffnete und mvn -v ausführte, ging es zurück zu java version 1.6. WTH!
Es ist eine Art vermeintlicher Fehler von dem, was ich gelesen habe: echo JAVA_HOME =
/usr/libexec/java_home -v 1.7
| sudo tee -a / etc / mavenrcund nun:
Maven-Startseite: /usr/local/Cellar/maven/3.1.1/libexec Java-Version: 1.7.0_45, Hersteller: Oracle Corporation Java-Startseite: /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre Standardgebietsschema: en_US, Plattformcodierung: UTF-8 Betriebssystemname: "mac os x", Version: "10.9", Bogen: "x86_64", Familie: "mac"
quelle
export JAVA_HOME=`/usr/libexec/java_home`
hat gut funktioniert, damit die JAVA_HOME-Variable korrekt exportiert wurde.Der Grund, warum Maven immer noch Java 6 verwendet, ist, dass das Skript / usr / bin / mvn, das es startet, nicht die richtige OS / X-Methode zum Auflösen der aktuellen Java-Version verwendet, wie in den Java-Einstellungen angegeben. Weitere Informationen finden Sie in dieser Maven-Ausgabe:
http://jira.codehaus.org/browse/MNG-4226
Wenn Sie es abstimmen, wird es möglicherweise behoben. Wenn Sie in der Zwischenzeit das Skript / usr / bin / mvn ändern, wie in den Kommentaren und Patches zu diesem Problem gezeigt, erhalten Sie das gewünschte Ergebnis.
quelle
Ok auf meiner Maschine. Ja, das Oracle-Installationsprogramm hat seine Aufgabe nicht genau erfüllt und mich verwirrt, nachdem 1.6 noch ausgeführt wurde.
Aber das SDK HOME ist eigentlich ein Sim-Link, der immer noch auf 1.6 verweist
/Library/Java/Home
im Finder zeigt GetInfo auf/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
im Terminal
Stelle dir das vor.
Ich habe hier 1.7 gefunden und verwende das zum Bauen mit:
/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
quelle
Ich denke, das Problem liegt teilweise im Java-Startmechanismus. Ich konnte Eclipse dazu bringen, meinen Code unter Java7 auszuführen, aber ich denke, dass Eclipse selbst immer noch unter Java6 ausgeführt wird. Außerdem habe ich ein Java-Programm, das zuletzt vor einem Jahr kompiliert und mit jarbundler-2.1.0.jar (mit der Option jvmversion = "1.6+") erstellt wurde. Wenn ich auf die .app-Datei doppelklicke, wird Java6 ausgeführt, aber wenn ich auf die .jar-Datei in der .app doppelklicke, wird Java7 ausgeführt.
Außerdem verwende ich JAVA_HOME nicht, erhalte aber trotzdem die richtige Java-Version "1.7.0_04", die in der Frage angezeigt wird. JAVA_HOME scheint ein roter Hering zu sein. Vielleicht braucht Maven es, aber Eclipse scheint es nicht zu verwenden und JAR-Dateien auch nicht zu starten.
Nach dem Festlegen von Java7 im Java-Einstellungen-Tool scheint dies keine Auswirkungen auf das Starten von .app-Java-Dateien zu haben. Allerdings funktioniert die Java-Version vom Terminal aus einwandfrei. Ich habe versucht, alles außer der Java7-Option zu deaktivieren, und dann wurde Eclipse überhaupt nicht ausgeführt.
quelle
Wenn sich Ihr JAVA_HOME bei der Bash des lokalen Benutzers befindet, wählt mvn die aktuelle Java-Version des Systems aus, unabhängig davon, welches JAVA_HOME Sie festgelegt haben.
Führen Sie daher zuerst den Befehl ' which mvn ' aus und überprüfen Sie, welche ausführbare mvn Sie verwenden. Danach bearbeitet , dass MVN - Datei und ändern Sie den JAVA_HOME - Variable auf Ihr Wunsch - Java nach Hause.
quelle