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 java version 6
$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)
Une idée pourquoi java 7 n'apparaît pas?
Sna: OK, le problème a été résolu. Voici la réponse: J'ai trouvé que mon terminal a un .bash_profile et la variable java home est définie sur 1.6
export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home"
C'est donc la ligne qui cause le problème chaque fois que j'ouvre une nouvelle fenêtre de terminal. Il suffit de supprimer cette ligne résoudra le problème. Vous devez toujours suivre ce que @aleroot a dit, mais si cela ne fonctionne pas pour vous, vérifiez le .bash_profile (ou .bashrc) fichier de réglage pour voir si vous avez déjà exporté une version java.
24 answers
Parce que vous devez entrer dans le volet des préférences Java et marquer uniquement la JVM 7 de cette façon:
Pour ouvrir facilement et rapidement le voletPréférences Java sous Mac OS X, vous pouvez simplement appeler spotlight avec ⌘+ESPACE 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 il n'écrase pas /usr/bin/java
. Donc, si vous émettez un
whereis java
Dans le terminal, il retournera /usr/bin/java. (qui à son tour pointe vers /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java
, qui est la version 1.6 d'Apple).
Donc, si vous souhaitez 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
Installer le JDK 7 et ce problème se résoudra de lui-même.
Assurez-vous d'obtenir le Kit de développement Java (JDK) qui comprend des compilateurs et des trucs comme ça, plutôt que juste l'environnement d'exécution Java (JRE) .
vi ~/.bash_profile
Ajouter
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
Cela 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: Il y a eu beaucoup de changements dans ce domaine récemment pour déplacer Mac OS X des paquets Java intégrés au système d'Appels vers des paquets 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=en
-
Vérifiez qu'il est installé correctement en regardant dans les préférences système:
- Command-Space pour ouvrir Spotlight, tapez "Préférences système", appuyez sur entrée.
- Cliquez sur l'icône Java dans la ligne 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 sous-traiter dans les commandes ci-dessous au cas où elles seraient différentes de la mienne.
-
Vérifiez que la version est que vous attendez (sous dans votre chemin si nécessaire):
/Bibliothèque/Internet\ Plug-Ins / JavaAppletPlugin.plugin/Contenu/Home/bin/java -version
-
Créer un lien depuis/usr/bin / java vers votre nouvelle installation
Sudo ln-fs / Bibliothèque / Internet\ Plugins/JavaAppletPlugin.plugin/Contenu/Home/bin/java /usr/bin/java
-
Santé mentale vérifiez votre version:
Java-version
J'avais rencontré un problème similaire avec terminal ne mettant pas à jour la version java pour correspondre à la version installée sur le mac.
Il n'y avait aucun problème avec la variable d'environnement JAVA_HOME définie
J'ai trouvé une solution temporaire et quelque peu douloureuse mais qui fonctionne.
En vous .bash_profile ajouter la ligne:
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home"
(C'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 de pansement temporaire car le chemin d'accès java est codé en dur. Il n'y a vraiment aucun moyen de définir le chemin pour obtenir la dernière version car c'est ce qu'Apple est censé faire pour terminal déjà 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 "rootless".
Par conséquent, j'ai simplement ajouté le chemin vers la dernière version java (dans mon cas, c'est /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin
) au PATH
dans mon fichier .bashrc
:
# Use latest java version
export PATH=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH
Pour recharger votre .bashrc
fichier pour la session en cours, exécutez source ~/.bashrc
dans le shell. Vous n'avez à le faire que pour les sessions qui avaient été démarrées avant de changer le fichier .bashrc
.
Maintenant, la dernière version est utilisée, lorsque vous utilisez java
dans le shell.
Pour moi, la façon la plus simple et la plus propre d'aller est d'installer Java en utilisant homebrew comme décrit ici:
Https://stackoverflow.com/a/28635465
brew update
brew cask install java
Le problème de base: {[0] } pointe vers celui fourni par OSX lui-même initialement (/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
)
Nous devons pointer ceci vers celui téléchargé par le programme d'installation JDK. Les étapes ci-dessous sont pour OSX 10.10.4 Yosemite.
- Ouvrez Préférences système -> sélectionnez Java. La fenêtre Java s'ouvre.
- Cliquez sur l'onglet Java en haut. Cliquez sur la touche "View".
- L'onglet Paramètres de l'environnement d'exécution Java s'ouvre comme ci-dessous:
- Double-cliquez sur l'élément
Path
et copiez chemin d'accès (cmd+c). C'est le 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
- Ouvrir le terminal. Dans cette étape, nous allons pointer (lien symbolique, commande
ln -s
) le binaire java du système vers le dernier, 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 afficher 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 un nouveau.
Je l'ai fait
export JAVA_HOME=`/usr/libexec/java_home`
Et cela a résolu mon problème 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)
Http://www.java.com/en/download/faq/java_mac.xml est un bon endroit pour comprendre, alors qu'Apple arrête la prise en charge de Java, pourquoi les préférences Java n'existent plus et s'appuient sur System_Preferences => Java => Java si Java 7 d'Oracle est installé.
Puis-je vous suggérer de jeter un oeil à 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.
Coder en dur le chemin JAVA_HOME n'est peut-être pas la meilleure idée. Le seuil de l'utilitaire /usr/libexec/java_home
fonctionne pour moi sur Mac OSX Lion 10.7.5 et JDK 1.7.0_13. Selon sa page de manuel, il est destiné à être utilisé avec l'ancien volet des 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 (les deux 1.6.* et 1.7.*) sur ma machine.
Donc, comme discuté dans d'autres threads (par exemple Que dois-je définir JAVA_HOME sur OSX), je recommanderais toujours d'ajouter la ligne suivante à votre .bash_profile:
export JAVA_HOME=$(/usr/libexec/java_home)
C'est fou! Comment Oracle fournit-il un installateur qui n'installe rien!?
, de toute façon 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 java installée...
Solution simple
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, le java dans / usr / bin / java sera remplacé et toute la bibliothèque fonctionnera correctement.
Dans le cas où vous avez plusieurs versions Java sur votre machine et que vous voulez le choisir dynamiquement à 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 modifier en modifiant le contenu / etc / profile. Juste ajouter (ou 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 être comme 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 enregistré le fichier, veuillez exécuter source /etc/profile
et il devrait fonctionner. Voici les résultats lorsque j'utilise la première et la deuxième option 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 se trouve à des endroits différents.
Vous pouvez exécuter cette commande pour trouver la version de Java qui se trouve sous / Library / Internet Plugins/:
defaults read /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Info.plist CFBundleVersion
Puisque je n'ai pas fait face à ce problème, je prends une intuition {
Pouvez-vous essayer ceci:
Où le lien souple "java_home" pointe-t-il vers:
ls -lrt /usr/libexec/java_home
Sortie: (Retard de croissance) lrwxr-xr-x java_home -> /System/Library/Frameworks/JavaVM.framework/Versions/Actuel/Commandes/java_home
**ls-lrt /System/Library/Frameworks/JavaVM.framework/Versions Mon MAC Produit ce qui suit:
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 en réinstallant Yosemite, puis en vérifiant la version java sur le terminal (java-version) et (javac-version). Cela fonctionne parfaitement now.It ne change pas en java 7 car la version 6 est toujours présente sur (command + n) libray>java>javavirtualmachine>votre version actuelle javac.vous devez vous adresser à l'accueil java .
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
ne fonctionne pas pour moi parce que j'ai eu Operation not permitted
. El Capitan protège désormais certains répertoires système en mode "rootless" (alias Protection de l'intégrité du système). Il est applicable à macOS Sierra, et probablement aux nouvelles versions de macOS dans un avenir prévisible.
Cela se produit parce que votre .bash_profile ne reflète pas changes.To réfléchissez-le, utilisez simplement la commande suivante
$ source .bash_profile
L'installation via JDK DMG distribué à partir du site Oracle met automatiquement à jour tout pour moi. J'ai vu (dans El Capitan) la mise à jour via System Preferences > Java
faire des mises à jour mais cela ne reflète pas la ligne de commande. L'installation via DMG fait le travail.