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

391

J'ai installé JDK 7u7 téléchargé depuis le site Web 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)

une 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 trouvé que mon terminal a un .bash_profile et la variable home java 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 pose problème à chaque fois que j'ouvre une nouvelle fenêtre de terminal. Il suffit de supprimer cette ligne pour résoudre le problème. Vous devez toujours suivre ce que @aleroot a dit, mais si cela ne fonctionne pas pour vous, vérifiez le fichier de paramètres .bash_profile (ou .bashrc) pour voir si vous avez déjà exporté une version java.

Yang
la source
23
J'ai eu ce problème mais je n'ai mis à jour que le JRE et non le JDK. Une fois que j'ai mis à jour le JDK, il a montré la bonne version.
Paul Maserrat
Migrer cela vers Ask Different?
Nakilon
14
Juste pour attirer davantage l'attention sur le commentaire de @ Mazzy, c'est une erreur facile à faire. Le téléchargement de JRE v7 fera apparaître la version 7 lors de l'exécution du vérificateur de version en ligne ou du truc du panneau de configuration Java, mais lors de l'appel de Java à partir de la ligne de commande, vous exécuterez l'ancienne version à partir de votre JDK précédemment installé. Vérifiez donc à nouveau que vous avez installé le JDK et pas seulement le JRE.
Cam Jackson
1
La meilleure façon de résoudre ce problème est d'utiliser l' export JAVA_HOMEapproche, comme détaillé ici d'une manière légèrement plus flexible.
Brad Parks
5
Permettez-moi d'insister sur ce point en majuscules: DE NOMBREUX PERSONNES DÉBARQUANT SUR CETTE PAGE ONT JUSTE BESOIN DE TÉLÉCHARGER ET D'INSTALLER LE DERNIER JDK. LE PANNEAU DE COMMANDE JAVA MET À JOUR UNIQUEMENT LE JRE.
Walter Tross

Réponses:

64

Parce que vous devez entrer dans le volet Préférences Java et marquer uniquement la JVM 7 de cette manière:

Préférences Java

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

aleroot
la source
3
oui, je l'ai trouvé. mais toujours la version 1.6 dans le terminal, ai-je besoin de redémarrer ou quelque chose
Yang
1
Ce panneau n'existe plus dans 10.8. Des alternatives?
Pepijn
68
@Pepijn Le panale est historique depuis Mac OSX 10.8.2 et il n'y en a plus vraiment besoin. Au lieu de cela, vous devez utiliser export JAVA_HOME=`/usr/libexec/java_home -v 1.7`pour passer au dernier JDK Java 7 d'Oracle.
Uwe Günther
23
Je pense qu'ils se sont débarrassés des préférences Java à un moment donné. Il n'est pas trouvé par Spotlight sur ma boîte. Exécution de 10.8.5.
quickshiftin
1
Vous pouvez trouver l'emplacement exact de JAVA_HOME sous -> préférences système -> java. Cliquez sur l'onglet "Java". Cliquez sur afficher. La variable Path affiche votre JAVA_HOME (tuile / Maison).
agaase
298

Le programme d'installation d'Oracle met java à l'intérieur du /Library/Internet Plug-Ins/JavaAppletPlugin.plugin. Et cela 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 java, remplacez le /usr/bin/javalien symbolique pour qu'il pointe à la /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/javaplace:

sudo rm /usr/bin/java
sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin
Ákos
la source
22
Voici la commande: sudo ln -s / Library / Internet \ Plug-Ins / JavaAppletPlugin.plugin / Contents / Home / bin / java / usr / bin
Binarian
11
Le commandement de Viktor fonctionne. Mais vous devrez peut-être également vous assurer de supprimer le lien symbolique java existantrm /usr/bin/java
Matt Florence
7
Jusqu'à ce que les gens d'Oracle améliorent ce processus, voici un HOWTO de tout le processus d'installation de java sur un système osx, jusqu'à et y compris cette dernière étape du lien symbolique: gist.github.com/johan/10590467
ecmanaut
61
j'ai eurm: /usr/bin/java: Operation not permitted
Aditya
37
Ouexport PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
Mick
114

Installez 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).

BrainO2
la source
7
installez le JDK complet, pas seulement le JRE.
BrainO2
5
-1 Ça n'a pas aidé. L'installation de JDK ne change pas non /usr/bin/javaplus JAVA_HOME. Mais le réglage de JAVA_HOMEaidé.
Andrii Nemchenko
3
Confirmé OK sur OSX 10.9.4. Cela ne change pas le lien / usr / bin, cela change des trucs en dessous. Donc /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java # But: /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java -version java version "1.7.0_67"
Joe Atzberger
1
Fonctionne
J'ai essayé d'installer Java 1.8, mais cela n'a pas fonctionné sur El Capitan. L'installation de 1.7 a résolu mes problèmes.
SPRBRN
104

vi ~/.bash_profile

ajouter

export JAVA_HOME=`/usr/libexec/java_home -v 1.7`

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

/Library/Java/JavaVirtualMachines/

Donc pour JDK, ce 1.7.0_17 JAVA_HOMEserait:

/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 packages Java intégrés au système Appels vers des packages Java basés sur Oracle. La solution ci-dessus fonctionne correctement à partir de Mac OS X 10.8.2

Uwe Günther
la source
4
+1 pour cette réponse qui est imo la bonne car elle fonctionne sur les versions de Mac OS avant et après la suppression des "Préférences Java", et en montrant l'option "-v", elle montre comment utiliser java 6 même si java 7 est installé (ce que je veux). Par conséquent, sur mon Mac exécutant Lion (10.7.5), j'utilise la même commande avec "-v 1.6". Ceci est crucial car j'ai besoin de Java 6 et Oracle n'en fournit pas pour Mac OS - uniquement Java 7, et cela me permet d'utiliser le JAva 6 installé même si Java 7 est installé.
Rhubarbe
1
Aussi, pour le rendre plus flexible: mikemainguy.blogspot.com/2014/11/…
Mainguy
des informations supplémentaires peuvent être trouvées ici pour cette réponse impressionnante!
Brad Parks
Cela a fonctionné pour moi dans Sierra 10.12 après l'installation du 1.8 JKD, l'exportation a fonctionné en changeant 1.7 en 1.8. Grande réponse en utilisant l'utilitaire java_home !!
Scott Byers
56

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

Téléchargez depuis Oracle: http://java.com/en/download/mac_download.jsp?locale=en

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

    • Command-Space pour ouvrir Spotlight, tapez 'System Preferences', appuyez sur Entrée.
    • Cliquez sur l'icône Java dans la ligne inférieure. Après l'ouverture du panneau de configuration Java, cliquez sur l'onglet «Java», «Afficher ...» et vérifiez que votre installation a fonctionné. Vous pouvez également voir un `` chemin '', que vous pouvez saisir 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 (sous dans votre chemin si nécessaire):

    / Library / Internet \ Plug-Ins / JavaAppletPlugin.plugin / Contents / Accueil / bin / java -version

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

    sudo ln -fs / Library / Internet \ Plug-Ins / JavaAppletPlugin.plugin / Contents / Home / bin / java / usr / bin / java

  4. Vérifiez votre version:

    java -version

dale.hamill
la source
A également fonctionné pour moi, j'ai également essayé l'autre explication, mais avec Maverix, il n'y a pas de panneau où vous pouvez sélectionner un numéro de version et la modification du .bash_profile n'a pas fonctionné. PARFAIT!
Alex Cio
Eclipse ne voit pas 1.7 sous le compilateur
Laser Hawk
A travaillé pour moi!. Avant = 1.6.0_65 et après avoir utilisé cette solution = 1.7.0_60 .... merci! :)
mathématiques
mais l'éclipse donne une erreur comme toujours «la bibliothèque partagée jvm ne contient pas le symbole jni_createjavavm» .... :(
maths
1
Merci pour l'aide! Rien d'autre n'a fonctionné, sauf cela. Running Yosemite
LordZardeck
33

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 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.

Dans votre .bash_profile, ajoutez la ligne:

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

(Il s'agit du chemin sur ma machine, mais il 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 pansement, car le chemin d'accès à la maison 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 que Apple est censé faire déjà pour le terminal et le problème est que la variable d'environnement java_home d'Apple n'est pas mise à jour.

Derek
la source
4
Le répertoire est vide. $ ls / Library / Java / JavaVirtualMachines /
Pepijn
1
Vous avez probablement un problème avec l'endroit où vous avez installé java 7. Veuillez visiter le site Web d' Oracle . Cliquez sur le lien "Java SE Development Kit 7u11", acceptez le contrat de licence et téléchargez "jdk-7u11-macosx-x64.dmg". Utilisez le dmg pour installer Java 7 et cela devrait le mettre dans votre répertoire JavaVirtualMachines.
Derek
Ceci est une solution sur Mojave 10.14.1 au début de 2019
bitsand
27

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

Par conséquent, j'ai simplement ajouté le chemin d'accès à la dernière version de java (dans mon cas, c'est le /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin) PATHdans mon .bashrcfichier:

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

Pour recharger votre .bashrcfichier pour la session en cours, exécutez source ~/.bashrcdans le shell. Vous ne devez effectuer cette opération que pour les sessions qui ont été démarrées avant de modifier le .bashrcfichier.

Maintenant, la dernière version est utilisée, lorsque vous utilisez javadans le shell.

TabeaKischka
la source
1
Cette solution particulière a fonctionné pour moi sur mon mac os x el capitan. Je n'ai pas contourné la sécurité configurée sur el capitan, mais j'ai installé la version java 1.8. Faire l'exportation JAVA_HOME = / mon chemin spécifique etc etc / n'a pas fonctionné (après être allé dans les préférences et localiser le chemin vers 1.8). Veuillez noter que 1.6 est toujours installé. J'ai dû créer un fichier .bashrc et définir le chemin comme décrit ici. J'ai couru java -version et shazzam! ça a marché.
umbregachoong
Je voulais tellement que cela fonctionne car je suis sur El Capitan et je ne peux pas faire fonctionner une autre solution. J'ai créé un fichier '.bashrc' et ajouté la ligne comme ci-dessus, mais si je tape 'java -version' j'obtiens toujours 1.6. Quelque chose que j'aurais pu oublier?
noLongerRandom
@ user3810073 vous devrez peut-être exécuter source .bashrc, afin de recharger le contenu de .bashrc
TabeaKischka
A travaillé pour moi. J'ai ajouté la ligne au .bash_profile (dans le répertoire personnel de mon utilisateur), puis au source .bash_profile. Ensuite, java -version m'a donné la dernière version. Merci!
mrmuggles
Ceci peut également être réalisé en créant un lien symbolique /usr/local/bincomme ceci: sudo ln -sf "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java" /usr/local/bin/java Cette supposition /usr/local/binest antérieure /usr/binà votre $PATHqui devrait être par défaut.
lifeofguenter
21

Pour moi, le moyen le plus simple et le plus propre est d'installer Java en utilisant des homebrew comme décrit ici:

https://stackoverflow.com/a/28635465

brew update
brew cask install java
Bernhardt Scherer
la source
Solution simple et propre!. A fonctionné comme un charme.
Rahul Shukla
2
C'est la seule solution qui a mis à jour à la fois java et javac. Merci!
ldanilek
Ça a marché comme un charme :) Merci beaucoup
Mohamed Saleh
cela installera la dernière version de java, pas Java7
Ivo
13

Le problème de base: /usr/bin/javapointe vers celui fourni par OSX lui-même initialement ( /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java) Nous devons le signaler à celui téléchargé par le programme d'installation de 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 «Afficher».
  • L'onglet Paramètres de l'environnement d'exécution Java s'ouvre comme suit: Onglet Paramètres JRE
  • Double-cliquez sur le Path élément et copiez le chemin (cmd + c). Ceci est le dernier installé par le programme d'installation / 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, ln -scommande) 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 ça. 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.

Aswin Kumar
la source
2
Fonctionne pour moi, sauf que j'ai dû ajouter -f à la commande ln. Sinon en cas d'échec avec ln: / usr / bin / java: le fichier existe
Dale
dans mon cas, je devrais utiliser à la usr/local/binplace de la usr/bincommande de terminal
iAkshay
Je reçois "opération non autorisée".
Shardul
Obtenir le chemin de cette manière est idéal. J'ai ensuite pu l'exporter et recharger bashrc pour résoudre le problème de version. Dans mon cas, je migrais de la version 7 vers la version 8 sur Mojave 10.14.1
bits et
12

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.

Amulya Kashyap
la source
1
Bizarrement, il remplace mais si je ferme le terminal et l'ouvre à nouveau, il montre à nouveau une version plus ancienne
Parth Patel
c'est vrai. tellement werid. solution très temporaire
Un utilisateur
1
ajoutez cela au fichier .bashrc puis source ~/.bashrcpour le rendre permanent
Azimjon Ilkhomov
10

J'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)
Climbs_lika_Spyder
la source
1
C'est /usr/libexec/java_homeune très bonne indication, merci!
Raffi
1
A fait le travail pour moi après avoir lu des tonnes de solutions possibles! Merci :)
ronnyrr
7

http://www.java.com/en/download/faq/java_mac.xml est un bon endroit pour comprendre, tandis 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é.

revher
la source
2
Ce sont de bonnes informations, mais vous devez vraiment fournir plus de détails qu'un simple lien. Si le lien est rompu à l'avenir, votre réponse ne sera vraiment pas très utile.
psubsee2003
7

Puis-je vous suggérer de jeter un œil à l'outil Jenv

Cela vous permettra de basculer à tout moment entre vos machines virtuelles Java installées.

Tout 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.

TitiMoby
la source
+1 pour cette réponse car vous pouvez utiliser Homebrew, si vous l'utilisez déjà dans votre système OS X. Je dis bien plus propre que les autres. Plus d'infos ici: jenv.be
piku
6

Coder en dur le chemin JAVA_HOME n'est peut-être pas la meilleure idée. Le /usr/libexec/java_homeseuil utilitaire 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 (Java Control Panel). Par exemple, l'exécution /usr/libexec/java_home -Vrépertorie tous les JDK installés (1.6. * Et 1.7. *) Sur ma machine.

Ainsi, 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)
zagyi
la source
Je serais d'accord avec votre commentaire ici, car c'est la meilleure pratique, mais pour une raison quelconque, la variable d'environnement java_home n'est pas définie correctement, c'est pourquoi cela ne fonctionne pas. Je crois que dans la dernière mise à jour d'Apple, votre suggestion est l'action par défaut pour JAVA_HOME dans le terminal et d'autres applications connexes par défaut.
Derek
@Derek Que voulez-vous dire exactement "la variable d'environnement java_home n'est pas définie correctement"? Selon cet article, l' /usr/libexec/java_homeutilitaire est censé fonctionner également avec les versions de java 7 et renvoie le chemin vers le JDK le plus récent installé. Cela fonctionne parfaitement sur ma machine.
zagyi
1
oui, il est censé fonctionner, mais ce n'est pas le cas pour les personnes ayant le problème mentionné par pepijin.
Derek
6

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

Quoi qu'il en soit 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 ...

Kevin Parker
la source
Pourquoi Apple ne fournit-il pas une méthode appropriée?
jwilleke
6

Dans le cas où vous avez plusieurs versions Java sur votre machine et que vous souhaitez la 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 changer en modifiant le contenu / etc / profile. Ajoutez (ou modifiez) simplement 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 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 se trouve à différents emplacements.

nxhoaf
la source
5

Solution simple

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
Mick
la source
Impressionnant. Cette solution a fait ma journée. Merci beaucoup Mick
Un utilisateur
3

Je pense que vous pouvez essayer d'installer jdk pas jre. En installant jdk, la java dans / usr / bin / java sera remplacée et toute la bibliothèque fonctionnera correctement.

DDDrop
la source
3

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 votre version Java par défaut.

java-switcher 1.7

ou

java-switcher 10
Andy Tran
la source
Merci Andy, c'était facile.
GreenROBO
1

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
Hefewe1zen
la source
1

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
Raghav Sharma
la source
0

Puisque je n'ai pas fait face à ce problème, je prends une intuition -

Pouvez-vous essayer ceci:

Où le lien logiciel "java_home" pointe-t-il:

ls -lrt /usr/libexec/java_home

Sortie: (Stunted) lrwxr-xr-x java_home -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home

** ls -lrt /System/Library/Frameworks/JavaVM.framework/Versions My 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 avoir un indice pour aller plus loin?

user1428716
la source
lire quelques commentaires sur Internet sur les problèmes de Java 7 avec MAC-OSX et cela montre bloqué.Référez-vous: grep.dk/tag/xprotect-meta-plist . Dans XProtect.meta.plist, j'ai Java 7 et Flash répertoriés.Jusqu'à jouer la police de vulnérabilité
user1428716
0

j'ai résolu ce problème en réinstallant Yosemite, puis en recoupant la version java sur le terminal (java -version) et (javac -version) .Il fonctionne parfaitement maintenant.Il ne change pas en java 7 car la version 6 est toujours présente sur (commande + n ) libray> java> javavirtualmachine> votre version actuelle de javac.vous devez vous adresser à java home.

AJAY
la source
0

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/javan'a pas fonctionné pour moi parce que je suis arrivé Operation not permitted. El Capitan protège désormais certains répertoires système en mode "rootless" (alias System Integrity Protection). Il est applicable à macOS Sierra et probablement à de nouvelles versions de macOS dans un avenir prévisible.

Charles Hamel
la source
0

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 > Javales mises à jour mais qui ne se reflètent pas sur la ligne de commande. L'installation via DMG fait le travail.

Santanu Karar
la source
0

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 ~/.bashrcexport en JAVA_HOMEspé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)
Miguel Mota
la source
0

La dernière méthode 100% efficace:


en bash:

vim ~/.bash_profile

ajouter

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
  • :wq sauver
  • cmd + q force à quitter bash
  • ouvrez à nouveau bash et tapez java -version

Mais en réalité, ce chemin indique jre et non jdk.

Si vous voulez indiquer le chemin vers JDK, vous devez

  1. Assurez-vous d'avoir installé JDK et non un seul runtime JRE
  2. remplacer le chemin précédent vers PATH="/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk", vous pouvez vous rendre sur /Library/Java/JavaVirtualMachinespour vous assurer que vous avez installé la version de JDK que vous attendiez.
liangli
la source