Installé Java 7 sur Mac OS X mais le Terminal utilise toujours la version 6
j'ai installé JDK 7u7 téléchargé à partir du site d'oracle. Mais après l'installation, le terminal affiche toujours la version java 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)
savez-vous pourquoi java 7 n'apparaît pas?
Ans: 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 fixée à 1.6
export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home"
donc c'est 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 dit, mais si cela ne fonctionne pas pour vous, vérifiez les .bash_profile (ou .bashrc) paramétrant le fichier pour voir si vous avez déjà exporté une version java.
24 réponses
parce que vous devez entrer dans Java Preferences pane et marquer seulement la JVM 7 de cette façon:
pour ouvrir facilement et rapidement le Préférences Java volet dans Mac OS X vous pouvez simplement appeler spotlight avec ⌘ + espace et tapez préférences de système il apparaîtra dans la dernière ligne de la fenêtre.
l'installateur D'Oracle place java à l'intérieur du /Library/Internet Plug-Ins/JavaAppletPlugin.plugin
. Et il n'écrira pas /usr/bin/java
. Donc, si vous émettez un
whereis java
dans le terminal, il renvoie / usr/bin / java. (qui à son tour pointe à /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 java, remplacer le /usr/bin/java
symlink de sorte qu'il pointe à /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
vi ~/.bash_profile
ajouter
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
indique à votre cible de lien /usr/bin/java
d'utiliser le dernier paquet 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
Note: il y a eu beaucoup de changement dans ce domaine récemment pour déplacer Mac OS X d'Appels propre système intégration de paquets Java à des paquets Java basés sur Oracle. La solution ci-dessus fonctionne très bien à partir de Mac OS X 10.8.2
dans mon cas, le problème était Qu'Oracle l'installait à un endroit différent de celui où j'étais habitué.
télécharger de Oracle: http://java.com/en/download/mac_download.jsp?locale=en
-
Vérifiez qu'il est installé correctement en regardant dans les préfets du système:
- "151970920 de Commande" de l'Espace pour ouvrir le Projecteur, le type de Système de Préférences', appuyez sur entrée.
- cliquez sur L'icône Java dans la rangée du bas. Après l'ouverture Du Panneau de configuration Java, cliquez sur 'Java' tab, ' View..."et vérifiez que votre installation a fonctionné. Vous pouvez voir un' chemin ' là aussi, que vous pouvez soumettre dans les commandes ci-dessous dans le cas où ils sont différents que le mien.
-
vérifiez que la version est celle que vous attendez (sub dans votre chemin si nécessaire):
/ Bibliothèque / Internet\ Plugins/JavaAppletPlugin.plugin / Contents/Home/bin / java-version
-
créer un lien depuis / usr / bin / java vers votre nouvelle installation
sudo ln -sf /Bibliothèque/Internet\ Plugins/JavaAppletPlugin.plugin / Contents/Home/bin / java / usr / bin/java
-
santé mentale vérifier votre version:
java-version
j'avais rencontré un problème similaire avec le terminal ne mettant pas à jour la version java pour correspondre à la version installée sur le mac.
il n'y avait pas de problème avec la variable D'environnement JAVA_HOME étant mis
j'ai trouvé une solution temporaire et quelque peu douloureuse mais efficace.
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 la vôtre, assurez-vous de faire la 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 band-aid parce que le chemin java home est codé en dur. Il n'y a vraiment aucun moyen de définir le chemin pour obtenir la dernière, car C'est ce que Apple est censé faire pour le 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 "sans racine".
par conséquent, j'ai simplement ajouté le chemin de la dernière version java (dans mon cas c'est /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin
) au PATH
dans mon .bashrc
fichier:
# 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, Lancez source ~/.bashrc
dans le shell. Vous n'avez à le faire que pour les sessions qui ont a commencé 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 facile 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
la question de base: /usr/bin/java
pointe vers une question fournie par OSX elle-même au départ ( /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
)
Nous devons pointer ceci sur celui téléchargé par l'installateur JDK. Les étapes ci-dessous sont pour 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 la touche "View".
- l'onglet Java Runtime Environment Settings s'ouvre comme suit::
- double-cliquez sur l'élément
Path
et copiez le chemin (cmd+c). C'est le dernier installé par l'installateur/updater de JDK. Dans mon cas, le chemin était/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
- Ouvrir un terminal. Dans cette étape, nous allons pointer (lien symbolique, commande
ln -s
) le binaire java système vers le dernier, que nous avons découvert dans l'étape précédente. Exécutez la commande suivante:
sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin/java
C'est ça. 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"
remplace l'ancienne java par une nouvelle.
j'ai fait
export JAVA_HOME=`/usr/libexec/java_home`
et cela a corrigé 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 bel endroit pour comprendre, alors Qu'Apple arrête le support 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 passer à tout moment entre vos JVM installées.
simplement comme:
jenv global oracle-1.7
puis plus tard à des fins d'essai:
jenv global oracle-1.6
Et vous avez beaucoup plus de commandes disponibles.
codage dur le chemin JAVA_HOME pourrait ne pas être la meilleure idée. L'utilitaire /usr/libexec/java_home
sill 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 les anciennes Préférences Java d'Apple, mais il semble fonctionner avec le remplacement fourni par Oracle (Java Control Panel). Par exemple, l'exécution de /usr/libexec/java_home -V
liste tous les JDK installés (tous deux 1.6.* et 1.7.*) sur ma machine.
ainsi, comme discuté dans d'autres fils (e.g. What should I set JAVA_HOME to on OSX ), je recommande toujours d'ajouter la ligne suivante à votre .bash_profile:
export JAVA_HOME=$(/usr/libexec/java_home)
c'est dingue! 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 toutes les bibliothèques fonctionneront correctement.
dans le cas où vous avez plusieurs versions Java sur votre machine et que vous voulez la choisir dynamiquement à l'exécution, I. e, 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 de /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, il devrait être comme le suivant 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 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 est situé dans différents endroits.
vous pouvez exécuter cette commande pour trouver la version de Java qui est sous / Library/Plugins Internet/:
defaults read /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Info.plist CFBundleVersion
puisque je n'ai pas fait face à cette question, je prends une intuition --
pouvez-vous essayer ceci:
où le lien doux "java_home" pointe vers:
ls -lrt /usr/libexec/java_home
Sortie: (Rabougri) 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 le
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, pourrions-nous avoir un indice pour aller plus loin ?
j'ai résolu ce problème en ré-installant Yosemite puis en croisant la version java sur le terminal (version java) et (version javac) .Ça marche parfaitement maintenant.Il ne change pas en java 7 car la version 6 est toujours présente sur (command + n) libray>java>javavirtualmachine>votre version javac actuelle.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
n'a pas fonctionné pour moi parce que j'ai eu Operation not permitted
. El Capitan protège désormais certains répertoires système en mode "rootless" (A. K. A. Protection De L'Intégrité Du Système). Il est applicable à macOS Sierra, et probablement de nouveaux macOS versions pour l'avenir prévisible.
il se passe parce que votre .bash_profile ne reflète pas les changements.Pour le refléter, il suffit d'utiliser la commande suivante
$ source .bash_profile
installation par JDK DMG distribué à partir du site Oracle auto-mises à jour tout pour moi. J'ai vu (dans El Capitan) mise à jour par System Preferences > Java
faire des mises à jour, mais qui ne reflètent pas à la ligne de commande. L'installation par L'intermédiaire de DMG fait le travail.