118 votes

Après l'installation de Java JDK 7 pour Mac OS X - mvn -version indique toujours java version 1.6.0_31

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, quand je 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 puis-je faire en sorte que Maven utilise le JDK Java 1.7.0_04 ?

Merci pour votre aide.

128voto

Bruce Phillips Points 1596

J'ai finalement 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) sur un Mac, puis définissez le jdk actuel via "Java Preferences.app".

Définir JAVA_HOME dans ~/.profile

4 votes

J'ai récemment installé Java 6 et je ne suis pas en mesure de localiser JavaPreferences.app car le Mac ne prend pas en charge Java. Pouvez-vous me dire maintenant comment je peux définir mon jvm sans utiliser JavaPreferences.

2 votes

Vous pouvez accepter votre propre réponse. Cela montrera à tous les autres que cela a résolu le problème. Et vous aurez 10 ponts de plus :)

5 votes

J'ai ajouté à ~/.bash_profile : export JAVA_HOME=$(/usr/libexec/java_home)

34voto

Mahmoud Adam Points 818

Le problème est que le lien symbolique "CurrentJDK" dans les versions de JavaVm.framework pointe vers l'ancien jdk, donc lorsque j'ai utilisé les commandes suivantes pour définir le CurrentJDK vers le dernier (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

0 votes

Assurez-vous que vous spécifiez la bonne version pour jdk1.7.0_45.jdk Le mien était jdk1.7.0_51.jdk

1 votes

Je me demande pourquoi les développeurs d'Oracle ne l'ont pas fait automatiquement ? Ce n'est pas trivial pour moi. Cette réponse a sauvé ma journée.

0 votes

Cela ne fonctionne pas pour moi. Je suis sur el captian. la version mvn java refuse de changer. JAVA_HOME est exact

17voto

dmolony Points 176

Pour trouver le chemin à partir des Préférences Java, essayez de /usr/libexec/java_home -X

Mon entrée dans 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>

6 votes

Grrrrr, j'ai fait cela et le chemin qu'il indique pour mon jdk1.7 n'existe pas du tout :(

10voto

Nate Points 445

Vous devez modifier le JAVA_HOME à l'emplacement du nouveau JDK 1.7.

Regardez cette question pour connaître les emplacements possibles où JAVA_HOME peut être défini. Dans un terminal, tapez which java pour trouver le chemin de votre installation Java, et ensuite mettre à jour JAVA_HOME pour pointer vers ce chemin (mais exclure le dossier bin qui suit).

0 votes

Êtes-vous sûr que je dois le faire sur un Mac OS X ? Je n'ai pas eu à le faire dans le passé. Si je dois définir JAVA_HOME, comment puis-je savoir quel chemin utiliser car l'installation de Java JDK 7 ne m'a donné aucune information sur le chemin d'installation et l'application utilitaire Java Preference sur le Mac n'indique pas de chemin vers le JDK 1.7.

0 votes

Si vous regardez votre question ci-dessus, vous pouvez voir que JAVA_HOME a déjà été défini et pointe actuellement vers l'ancien JDK 1.6. Je ne suis pas familier avec la façon de modifier les variables d'environnement sous OSX, mais c'est ce que Maven utilise par défaut.

0 votes

Le problème est qu'une mise à jour Apple met normalement à jour la version de java et définit la valeur JAVA_HOME. La définition de la valeur JAVA_HOME dans .bashrc ne fonctionne pas sous OS X comme sous Linux. De plus, je ne trouve nulle part le chemin vers le JDK 7 installé par Oracle.

7voto

ConfusedDeer Points 601

Si quelqu'un est en train d'installer Maven sur un Mac 64 bits fonctionnant sous Mac OSX 'Mavericks', épargnez vous du temps et de l'énergie pour essayer d'installer Maven. J'ai essayé de suivre cette procédure (qui a échoué parce que l'emplacement de java_home a changé sur Mavericks) :

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

Je m'arrachais les cheveux jusqu'à ce que je trouve ce site web, qui vous recommande d'installer un homebrew et de suivre les instructions de cette page : http://techspunky.blogspot.in/2013/10/how-to-install-maven-on-mac-osx-109.html

une fois terminé, ne paniquez pas si $ maven -version ne fonctionne pas, utilisez plutôt $mvn --version comme le recommande maven.apache.org/download.cgi.

Cela a fonctionné, mais j'ai ensuite remarqué que le SDK Java que Maven utilisait était Java version : 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 paramètre JAVA_HOME= /usr/libexec/java_home

Il utilisait le bon SDK : Maven home : /usr/local/Cellar/maven/3.1.1/libexec Version Java : 1.7.0_45, fournisseur : Oracle Corporation Java home : /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre Localité par défaut : en_US, encodage 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 exécuté mvn -v, il est revenu à la version 1.6 de java. WTH !

C'est une sorte de bug supposé d'après ce que j'ai lu : echo JAVA_HOME= /usr/libexec/java_home -v 1.7 | sudo tee -a /etc/mavenrc

et maintenant :

Maison Maven : /usr/local/Cellar/maven/3.1.1/libexec Version de Java : 1.7.0_45, fournisseur : Oracle Corporation Java home : /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre Localité par défaut : en_US, encodage de la plate-forme : UTF-8 Nom du système d'exploitation : "mac os x", version : "10.9", arch : "x86_64", famille : "mac"

0 votes

export JAVA_HOME=`/usr/libexec/java_home` a bien fonctionné pour moi afin que la variable JAVA_HOME soit exportée correctement.

0 votes

Pour moi, le coupable était /etc/mavenrc. Il était codé en dur à 1.8 alors que j'avais besoin de 12.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X