Oracle a publié Java JDK 7 le 26 avril pour Mac OS X. J'ai suivi les instructions d'installation et lorsque je fais java -version dans une fenêtre de terminal, j'obtiens:
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)
Cependant, lorsque je le fais mvn -version
dans la fenêtre du terminal, j'obtiens:
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"
Comment faire en sorte que Maven utilise le Java JDK 1.7.0_04?
Merci pour l'aide.
Le problème est que le lien symbolique "CurrentJDK" dans les versions de JavaVm.framework pointe vers l'ancien jdk, donc quand j'ai utilisé les commandes suivantes pour définir le CurrentJDK sur le dernier (1.7.0_45) cela fonctionne
référence: http://java.dzone.com/articles/installing-jdk-7-mac-os-x
la source
jdk1.7.0_45.jdk
, la mienne étaitjdk1.7.0_51.jdk
Pour trouver le chemin à partir des préférences Java, essayez
/usr/libexec/java_home -X
Mon entrée Java7 ressemble à ceci:
la source
Vous devez remplacer la
JAVA_HOME
variable d'environnement par le nouvel emplacement JDK 1.7.Regardez cette question pour les emplacements possibles où JAVA_HOME pourrait être défini. Dans un terminal, tapez
which java
pour rechercher le chemin de votre installation Java, puis mettezJAVA_HOME
à jour pour pointer vers ce chemin (mais excluez le dossier bin final).la source
Au cas où quelqu'un installerait Maven sur un Mac 64 bits exécutant Mac OSX «Mavericks», économisez du temps et des cheveux en essayant d'installer Maven. J'essayais de suivre ceci (qui a échoué car l'emplacement du java_home a changé sur Mavericks:
http://maven.apache.org/download.cgi
Je tirais mes cheveux jusqu'à ce que je trouve ce site Web, qui vous recommande d'installer homebrew et de suivre les instructions sur cette page: http://techspunky.blogspot.in/2013/10/how-to-install-maven-on-mac -osx-109.html
une fois terminé, ne paniquez pas lorsque $ maven -version ne fonctionne pas, utilisez plutôt $ mvn --version comme recommandé par maven.apache.org/download.cgi.
Cela a fonctionné, mais j'ai remarqué que le SDK Java que Maven utilisait était la version Java: 1.6.0_65, qui n'est pas le dernier SDK que j'ai installé sur le système.
Une fois que j'ai défini le JAVA_HOME =
/usr/libexec/java_home
Il utilisait le bon SDK: Maven home: /usr/local/Cellar/maven/3.1.1/libexec Java version: 1.7.0_45, fournisseur: Oracle Corporation Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_45. jdk / Contents / Home / jre Paramètres régionaux par défaut: en_US, encodage de plate-forme: UTF-8 Nom du système d'exploitation: "mac os x", version: "10.9", arch: "x86_64", famille: "mac"
Succès! mais attendez ... la prochaine fois que j'ai ouvert le terminal et lancé mvn -v, il est revenu à la version 1.6 de Java. WTH!
c'est une sorte de bogue supposé d'après ce que j'ai lu: echo JAVA_HOME =
/usr/libexec/java_home -v 1.7
| sudo tee -a / etc / mavenrcet maintenant:
Accueil Maven: /usr/local/Cellar/maven/3.1.1/libexec Version Java: 1.7.0_45, fournisseur: Oracle Corporation Accueil Java: /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre Paramètres régionaux par défaut: en_US, encodage de la plateforme: UTF-8 Nom du système d'exploitation: "mac os x", version: "10.9", arch: "x86_64", famille: "mac"
la source
export JAVA_HOME=`/usr/libexec/java_home`
a bien fonctionné pour moi d'exporter correctement la var JAVA_HOME.La raison pour laquelle Maven utilise toujours Java 6 est que le script / usr / bin / mvn qui le lance n'utilise pas la méthode OS / X correcte pour résoudre la version actuelle de Java comme spécifié dans les Préférences Java. Consultez ce numéro de Maven pour plus de détails:
http://jira.codehaus.org/browse/MNG-4226
Le voter pourrait le réparer; en attendant, si vous modifiez le script / usr / bin / mvn comme indiqué dans les commentaires et le correctif sur ce problème, vous obtiendrez le résultat souhaité.
la source
Ok sur ma machine. Oui, le programme d'installation d'Oracle n'a pas fait exactement son travail, et il m'a complètement dérouté après que 1.6 soit toujours en cours d'exécution.
mais le SDK HOME est en fait un lien sim pointant toujours vers 1.6
/Library/Java/Home
dans le Finder, GetInfo pointe vers/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
dans le terminal
Allez comprendre.
J'ai trouvé 1.7 ici et je l'utilise pour construire avec:
/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
la source
Je pense que le problème réside en partie dans le mécanisme de lancement de java. J'ai pu obtenir Eclipse pour exécuter mon code sous Java7, mais je pense qu'Eclipse lui-même fonctionne toujours sous Java6. De plus, j'ai un programme java qui a été compilé pour la dernière fois il y a un an, et construit avec jarbundler-2.1.0.jar (avec l'option jvmversion = "1.6+"). Lorsque je double-clique sur le fichier .app, il exécute Java6, mais lorsque je double-clique sur le fichier .jar dans le .app, il exécute Java7.
De plus, je n'utilise pas JAVA_HOME, mais j'obtiens toujours la version Java correcte "1.7.0_04" indiquée dans la question. JAVA_HOME semble être un hareng rouge. Peut-être que Maven en a besoin, mais Eclipse ne semble pas l'utiliser, pas plus que le lancement de fichiers jar.
Et après avoir défini Java7 dans l'outil Préférences Java, cela ne semble pas affecter le lancement des fichiers java .app. Cependant, cela permet à «java -version» du terminal de fonctionner correctement. J'ai essayé de décocher tout sauf l'option Java7, puis Eclipse ne fonctionnait pas du tout.
la source
Si votre JAVA_HOME est situé au bash de l'utilisateur local, mvn choisira la version java actuelle du système, quel que soit le JAVA_HOME que vous avez défini.
Par conséquent, lancez d'abord la commande ' which mvn ' et vérifiez quel exécutable mvn vous utilisez. Après cela, modifiez ce fichier mvn et remplacez la variable JAVA_HOME par votre home java préféré.
la source