web-dev-qa-db-fra.com

Installé Java 7 sur Mac OS X mais Terminal utilise toujours la version 6

J'ai installé JDK 7u7 téléchargé à partir du site Web d'Oracle. Mais après l'installation, le terminal affiche toujours la version 6 de Java.

$Java -version
Java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01-428, mixed mode)

aucune idée pourquoi Java 7 n'apparaît pas?

Rép: OK, le problème a été résolu. Voici la réponse: J'ai constaté que mon terminal avait un fichier .bash_profile et que la variable home Java était définie sur 1.6

export Java_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home"

Il s’agit donc de la ligne à l’origine du problème à chaque fois que j’ouvrais une nouvelle fenêtre de terminal . Supprimez simplement cette ligne pour résoudre le problème. Vous devez toujours suivre ce que @aleroot a dit, mais si cela ne fonctionne pas, consultez le fichier de paramètres .bash_profile (ou .bashrc) pour voir si vous avez déjà exporté une version Java.

375
Yang

Parce que vous devez entrer dans le volet Préférences Java et marquer uniquement JVM 7 de cette façon:

Java Preferences

Pour ouvrir facilement et rapidement le panneau Préférences Java sous Mac OS X, vous pouvez simplement appeler spotlight avec +SPACE et tapez Préférences Système , il apparaîtra dans la dernière ligne de la fenêtre.

64
aleroot

Le programme d'installation d'Oracle place Java dans le /Library/Internet Plug-Ins/JavaAppletPlugin.plugin. Et cela ne remplace pas /usr/bin/Java. Donc, si vous émettez un

whereis Java

dans le terminal, il retournera/usr/bin/Java. (qui pointe à son tour sur /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/Java, qui est la version 1.6 d’Apple).

Donc, si vous voulez utiliser la nouvelle version de Java, remplacez le lien symbolique /usr/bin/Java afin qu’il pointe vers /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/Java à la place:

Sudo rm /usr/bin/Java
Sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/Java /usr/bin
294
Ákos

Installez le JDK 7 et ce problème sera résolu tout seul. 

Assurez-vous d’obtenir le JDK (Java Development Kit), qui inclut des compilateurs et ce genre de choses, plutôt que le JRE (Java Runtime Environment).

113
BrainO2

vi ~/.bash_profile

ajouter 

export Java_HOME=`/usr/libexec/Java_home -v 1.7`

Ceci indique à votre cible de lien /usr/bin/Java d'utiliser le dernier package Java 7 installé dans 

/Library/Java/JavaVirtualMachines/

Donc pour JDK 1.7.0_17Java_HOME serait:

/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home

Remarque: récemment, de nombreux changements ont eu lieu dans cette zone pour déplacer Mac OS X de packages Java intégrés au système Appels à des packages Java basés sur Oracle. La solution ci-dessus fonctionne correctement à partir de Mac OS X 10.8.2. 

103
Uwe Günther

Dans mon cas, le problème était qu'Oracle l'installait à un emplacement différent de celui auquel j'étais habitué.

Télécharger depuis Oracle: http://Java.com/en/download/mac_download.jsp?locale=fr

  1. Vérifiez qu'il est correctement installé en consultant Préférences système:

    • Commande-Espace pour ouvrir Spotlight, tapez 'Préférences Système', appuyez sur Entrée. 
    • Cliquez sur l'icône Java dans la rangée du bas. Une fois le panneau de configuration Java ouvert, cliquez sur l'onglet "Java", "Afficher ..." et vérifiez que votre installation a fonctionné. Vous pouvez également y voir un "Chemin", que vous pouvez insérer dans les commandes ci-dessous au cas où elles seraient différentes des miennes.
  2. Vérifiez que la version est celle que vous attendez (dans votre chemin, au besoin):

    / Bibliothèque/Internet\Plug-ins/JavaAppletPlugin.plugin/Sommaire/Accueil/bin/Java -version

  3. Créez un lien depuis/usr/bin/Java vers votre nouvelle installation

    Sudo ln -fs/Bibliothèque/Internet\Plug-ins/JavaAppletPlugin.plugin/Sommaire/Accueil/bin/Java/usr/bin/Java

  4. Sanity vérifier votre version:

    Version Java

56
dale.hamill

J'avais rencontré un problème similaire avec le terminal qui ne mettait pas à jour la version de Java pour correspondre à la version installée sur le Mac.

Aucun problème lié à la variable d'environnement Java_HOME définie 

Je suis venu avec une solution temporaire et un peu pénible mais efficace.

Dans vous .bash_profile ajoutez la ligne:

export Java_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home"

(Ceci est le chemin sur ma machine mais peut être différent sur le vôtre, assurez-vous d’obtenir le vôtre. Les chemins doivent correspondre à/Library/Java/JavaVirtualMachines /)

la course source ~/.bash_profile

Comme je l'ai mentionné, il s'agit d'une solution temporaire de résolution des problèmes de bande, car le chemin principal Java est codé en dur. Il n’ya vraiment aucun moyen de définir le chemin pour obtenir les dernières informations car c’est ce que Apple est censé faire pour le terminal et le problème est que la variable d’environnement Java_home d’Apple n’est pas mise à jour.

32
Derek

Depuis El Capitan, il est difficile de supprimer le lien symbolique /usr/bin/Java en raison de l'introduction de la nouvelle politique "sans racine".

Par conséquent, j'ai simplement ajouté le chemin d'accès à la dernière version de Java (dans mon cas, il s'agit de /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin) à PATH dans mon fichier .bashrc:

# Use latest Java version
export PATH=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH

Pour recharger votre fichier .bashrc pour la session en cours, exécutez source ~/.bashrc dans le shell. Vous devez le faire uniquement pour les sessions qui ont été démarrées avant de modifier le fichier .bashrc.

La version la plus récente est utilisée lorsque vous utilisez Java dans le shell.

24
TabeaKischka

Pour moi, le moyen le plus simple et le plus simple consiste à installer Java à l'aide de l'homebrew comme décrit ci-après:

https://stackoverflow.com/a/28635465

brew update
brew cask install Java
20
Bernhardt Scherer

Le problème de base: /usr/bin/Java pointe vers celui fourni par OSX lui-même initialement (/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/Java) Nous devons pointer celui-ci sur celui téléchargé par le programme d'installation du JDK. Les étapes ci-dessous concernent OSX 10.10.4 Yosemite.

  • Ouvrez les Préférences Système -> sélectionnez Java. La fenêtre Java s'ouvre.
  • Cliquez sur l'onglet Java en haut. Cliquez sur le bouton 'Voir'.
  • L'onglet Paramètres de l'environnement d'exécution Java s'ouvre comme suit:  JRE Settings tab
  • Double-cliquez sur l'élément Path et copiez le chemin (cmd + c). Il s’agit du dernier installé par le programme d’installation/de mise à jour JDK. Dans mon cas, le chemin était /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/Java
  • Terminal ouvert. Dans cette étape, nous allons pointer (lien symbolique, commande ln -s) le dernier fichier binaire Java système, que nous avons découvert à l'étape précédente. Exécutez la commande ci-dessous:

Sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/Java /usr/bin/Java

C'est tout. Pour vérifier, vous pouvez simplement exécuter Java -version Sur le terminal. Il devrait sortir la dernière version que vous avez installée/mise à jour.

12
Aswin Kumar

Vous pouvez exécuter la commande suivante dans votre terminal:

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"

Et cela remplace l'ancien Java par le nouveau.

11
Amulya Kashyap

J'ai fait 

export Java_HOME=`/usr/libexec/Java_home`

et cela a résolu mon problème avec Java 8.

avant:

Java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)

après:

Java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)
10
Climbs_lika_Spyder

Puis-je vous suggérer de regarder l'outil Jenv

Cela vous permettra de basculer à tout moment entre vos JVM installées.

Simplement comme:

jenv global Oracle-1.7

puis plus tard à des fins de test:

jenv global Oracle-1.6

Et vous avez beaucoup plus de commandes disponibles.

7
TitiMoby

http://www.Java.com/en/download/faq/Java_mac.xml est un endroit agréable à comprendre, alors qu'Apple cesse de prendre en charge Java, pourquoi les préférences Java n'existent plus et reposent sur System_Preferences => Java => Java si Java 7 d'Oracle est installé.

7
revher

C'est fou! Comment Oracle fournit-il un programme d'installation qui n'installe rien!?

En tout cas pour moi c'était:

Sudo rm /usr/bin/Java
Sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/bin/Java /usr/bin/Java

où 1.8.0_31 est votre version de Java installée ...

6
Kevin Parker

Coder en dur le chemin Java_HOME n'est peut-être pas la meilleure idée. L'outil /usr/libexec/Java_home fonctionne pour moi sous Mac OSX Lion 10.7.5 et JDK 1.7.0_13. Selon sa page de manuel, il est censé être utilisé avec l’ancien panneau Préférences Java d’Apple, mais il semble fonctionner avec le remplacement fourni par Oracle (panneau de configuration Java). Par exemple, l'exécution de /usr/libexec/Java_home -V répertorie tous les JDK installés (1.6. * Et 1.7. *) Sur ma machine.

Ainsi, comme indiqué dans d'autres discussions (par exemple, Que devrais-je définir pour Java_HOME sous OSX ), je recommanderais toujours d'ajouter la ligne suivante à votre fichier .bash_profile:

export Java_HOME=$(/usr/libexec/Java_home)
6
zagyi

Solution simple

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
4
Mick

Je pense que vous pouvez essayer d'installer jdk pas jre. En installant jdk, Java dans/usr/bin/Java sera remplacé et toutes les bibliothèques fonctionneront bien.

3
ParaDevil

Si vous avez plusieurs versions de Java sur votre machine et que vous voulez la choisir dynamiquement au moment de l’exécution, c’est-à-dire, dans mon cas, j’ai deux versions:

ls -la /Library/Java/JavaVirtualMachines
drwxr-xr-x  3 root  wheel    96B Nov 16  2014 jdk1.7.0_71.jdk/
drwxr-xr-x  3 root  wheel    96B Mar  1  2015 jdk1.8.0_31.jdk/

Vous pouvez les changer en modifiant le contenu/etc/profile. Il suffit d’ajouter (ou de modifier) ​​les deux lignes suivantes à la fin du fichier:

export Java_HOME=YOUR_Java_PATH/Contents/Home
export PATH=$Java_HOME/bin:$PATH

Dans mon cas, cela devrait ressembler à ce qui suit si je veux utiliser:

Java 7:

export Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
export PATH=$Java_HOME/bin:$PATH

Java 8:

export Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home
export PATH=$Java_HOME/bin:$PATH

Après avoir sauvegardé le fichier, veuillez exécuter source /etc/profile et cela devrait fonctionner. Voici les résultats lorsque j'utilise les première et deuxième options en conséquence:

Java 7:

Java -version
Java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)

Java 8:

Java -version 
Java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)

Le processus est similaire si votre dossier Java est situé à des emplacements différents.

3
nxhoaf

Cela se produit parce que votre .bash_profile ne reflète pas les changements. Pour le refléter, utilisez simplement la commande suivante

$ source .bash_profile
1
Raghav Sharma

Vous pouvez exécuter cette commande pour trouver la version de Java située dans/Library/Internet Plugins /:

defaults read /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Info.plist CFBundleVersion
1
Hefewe1zen

j'ai résolu ce problème en réinstallant Yosemite puis en vérifiant la version Java sur le terminal (version Java) et (version javac). ) libray> Java> javavirtualmachine> votre version actuelle de javac.vous devez vous adresser à la maison Java.

0
AJAY

Vérifiez les versions de JDK installées:

$ ls  /Library/Java/JavaVirtualMachines/
jdk-11.0.2.jdk  jdk1.8.0_91.jdk

Maintenant, dans votre ~/.bashrc export Java_HOME en spécifiant la version:

if [ -e /usr/libexec/Java_home ]; then
  export Java_HOME=$(/usr/libexec/Java_home -v 11)
fi

Sourcez le fichier bashrc et la version Java sera mise à jour:

$ Java -version
Java version "11.0.2" 2019-01-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)
0
Miguel Mota

Si vous avez installé Homebrew, vous pouvez installer Java-switcher pour changer la version par défaut de Java plus rapidement

brew tap andycillin/tap
brew install Java-switcher

Ensuite, vous pouvez utiliser une seule commande pour changer de version Java par défaut.

Java-switcher 1.7

ou

Java-switcher 10
0
Andy Tran

L'installation via JDK DMG distribué à partir du site Oracle met automatiquement à jour tout pour moi. J'ai vu (dans El Capitan) mettre à jour via System Preferences > Java faire des mises à jour mais cela ne correspond pas à la ligne de commande. L'installation via DMG fait le travail.

0
Santanu Karar

Puisque je n’ai pas fait face à ce problème, j’ai un pressentiment - 

Pouvez-vous s'il vous plaît essayer ceci: 

Où le lien symbolique "Java_home" pointe-t-il sur: 

ls -lrt /usr/libexec/Java_home

Sortie: (retardé) lrwxr-xr-x rép_base Java ->/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/Java_home

** ls -lrt /System/Library/Frameworks/JavaVM.framework/Versions Mon MAC produit les éléments suivants: 

 lrwxr-xr-x CurrentJDK ->
 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents**

 lrwxr-xr-x   Current -> A
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.6.0 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.6 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.5.0 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.5 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.4.2 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.4 -> CurrentJDK

Sur cette base, nous pourrions obtenir un indice pour aller plus loin?

0
user1428716

J'ai résolu ce problème avec Sudo rm /usr/bin/Java

Et j'ai téléchargé et installé le dernier environnement d'exécution Java SE: http://www.Oracle.com/technetwork/Java/javase/downloads/index.html

Sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/bin/Java /usr/bin/Java n'a pas fonctionné pour moi car j'ai Operation not permitted. El Capitan protège maintenant certains répertoires système en mode "sans racine" (a.k.a. System Integrity Protection). Il est applicable à macOS Sierra et probablement à de nouvelles versions de macOS dans un avenir prévisible.

0
Charles Hamel