Oracle a publié Java JDK 7 le 26 avril pour Mac OS X. J'ai suivi les instructions d'installation et lorsque je fais la version Java dans une fenêtre de terminal, je reçois:
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 fais mvn -version
dans la fenêtre du terminal, je reçois:
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 puis-je amener Maven à utiliser le JDK Java 1.7.0_04?
Merci pour l'aide.
Enfin trouvé la réponse ici:
http://www.adam-bien.com/roller/abien/entry/Java_se_development_kit_7
Vous devez utiliser Java_HOME=$(/usr/libexec/Java_home)
à la place sur un Mac, puis définir le jdk actuel via "Java Preferences.app".
Définir Java_HOME dans ~/.profile
Le problème est que le lien symbolique "CurrentJDK" dans les versions de JavaVm.framework pointe vers l'ancien jdk. Ainsi, lorsque j'ai utilisé les commandes suivantes pour définir le CurrentJDK sur la dernière (1.7.0_45), cela fonctionne
cd /System/Library/Frameworks/JavaVM.framework/Versions
Sudo rm CurrentJDK
Sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents CurrentJDK
référence: http://Java.dzone.com/articles/installing-jdk-7-mac-os-x
Pour trouver le chemin à partir des préférences Java, essayez /usr/libexec/Java_home -X
Mon entrée Java7 ressemble à ceci:
<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>
Vous devez remplacer la variable d'environnement Java_HOME
par le nouvel emplacement JDK 1.7.
Regardez cette question pour les emplacements possibles où Java_HOME pourrait être défini. Dans un terminal, saisissez which Java
pour rechercher le chemin de votre installation Java, puis mettez à jour Java_HOME
pour qu'il pointe vers ce chemin (en excluant le dossier de dossier final).
Au cas où quelqu'un installerait Maven sur un Mac 64 bits fonctionnant sous Mac OSX, les «Mavericks» vous feront gagner du temps et vous essaieront d'essayer de faire installer Maven. J'essayais de suivre ceci (ce qui a échoué car l'emplacement de Java_home a changé sur Mavericks:
http://maven.Apache.org/download.cgi
Je me tirais les cheveux jusqu'à trouver ce site Web, qui vous recommande d'installer homebrew et de suivre les instructions qui s'affichent 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 maven.Apache.org/download.cgi recommandé.
Cela a fonctionné, mais j'ai ensuite remarqué que le SDK Java utilisé par Maven était la version Java: 1.6.0_65, qui n'est pas le dernier SDK installé sur le système.
Une fois que j'ai défini Java_HOME = /usr/libexec/Java_home
Il utilisait le bon SDK: Maven home: /usr/local/Cellar/maven/3.1.1/libexecJava version: 1.7.0_45, fournisseur: Oracle CorporationJava home:/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Sommaire/Home/jre Paramètres régionaux par défaut: en_US, codage de la 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 à Java version 1.6. WTH!
c'est une sorte de supposé bogue de ce que j'ai lu, utilisez: echo Java_HOME = /usr/libexec/Java_home -v 1.7
| Sudo tee -a/etc/mavenrc
et maintenant:
Accueil Maven: /usr/local/Cellar/maven/3.1.1/libexecJava version: 1.7.0_45, fournisseur: Oracle CorporationJava home: /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk /Contents/Home/jreLocale par défaut: en_US, codage de la plate-forme: UTF-8 Nom du système d'exploitation: "mac os x", version: "10.9", Arch: "x86_64", famille: "mac".
Maven utilise toujours Java 6 parce que le script/usr/bin/mvn qui le lance n’utilise pas la méthode OS/X appropriée pour résoudre la version Java actuelle spécifiée dans les préférences Java. Voir ce numéro de Maven pour plus de détails:
http://jira.codehaus.org/browse/MNG-4226
Le voter pourrait le faire réparer; entre-temps, si vous modifiez le script/usr/bin/mvn comme indiqué dans les commentaires et le correctif relatifs à ce problème, vous obtiendrez le résultat souhaité.
Ok sur ma machine Oui, le programme d’installation d’Oracle n’a pas fait exactement son travail et il m’a rendu complètement confus après le lancement de la version 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)
mais le SDK HOME est en fait un lien sim toujours pointant vers 1,6
/Library/Java/Home
dans le Finder GetInfo pointe sur /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
dans le terminal
./Home -> /System/Library/Frameworks/JavaVM.framework/Home
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
Je pense que le problème réside en partie avec le mécanisme de lancement de Java. J'ai pu obtenir qu'Eclipse exécute mon code sous Java7, mais je pense qu'Eclipse lui-même fonctionne toujours sous Java6. En outre, j'ai un programme Java compilé pour la dernière fois il y a un an et construit à l'aide de 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 .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 fouillis 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 avoir d'incidence sur le lancement de fichiers Java .app. Cependant, cela fait bien fonctionner la "version Java" du terminal. J'ai essayé de décocher tout sauf l'option Java7, puis Eclipse ne fonctionnerait plus du tout.
Si votre Java_HOME est situé sur le bash de l'utilisateur local, mvn choisira la version Java actuelle du système, peu importe ce que Java_HOME vous avez défini.
Par conséquent, commencez par exécuter la commande ' which mvn ' et vérifiez quel mvn exécutable est utilisé. Après cela éditez ce fichier mvn et changez la variable Java_HOME en votre répertoire Java préféré.