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.
Parce que vous devez entrer dans le volet Préférences Java et marquer uniquement JVM 7 de cette façon:
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.
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
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).
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_17
Java_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.
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
Vérifiez qu'il est correctement installé en consultant Préférences système:
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
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
Sanity vérifier votre version:
Version Java
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.
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.
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
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.
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
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.
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.
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)
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.
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é.
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 ...
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)
export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
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.
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.
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
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
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.
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)
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
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.
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?
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.