Installation de Java sur OS X 10.9 (Mavericks)

321

J'ai installé le JDK sur Mac OS X v10.8 (Mountain Lion). Lorsque je l'ai mis à niveau vers Mac OS X v10.9 (Mavericks) et que j'ai exécutéjava -version dans le terminal, il a montré:

Aucun runtime Java présent, demandant l'installation.

Ensuite, j'ai installé manuellement le JDK (1.7) sur mon Mac. Il semble que l'installation ait bien fonctionné. Une fois l'installation terminée, j'ai ouvert le terminal et tapé java -versionégalement. Il a également montré la même erreur:

Aucun runtime Java présent, demandant l'installation.

Comment puis-je résoudre ce problème?

user2909913
la source
1
Je ne sais pas quel problème est là dans le terminal mais je lance eclipse et tous les projets se compilent bien en non-conformistes
Sunny
1
il semble que l'ancien lanceur java ne supporte que jdk 1.6 mais mavericks n'a pas 1.6 installé par défaut.
Shawn
1
Vous avez installé java 6, pas java 7 car OP impliquait à l'origine qu'ils en avaient besoin. Je souhaite savoir comment cette solution est trouvée. Il doit également y avoir ici une approche «alternative» qui traite directement le retour d'information du terminal.
Rondo
4
C'est très bien pour Java 6, mais comment faire fonctionner Java 7?
190290000 Rouble Man
2
Ajout d'une réponse potentielle pour installer Java 7 JRE et le faire fonctionner dans le terminal: stackoverflow.com/a/19582689/346286
analogique

Réponses:

279

Le nouveau Mavericks (10.9) m'a montré la "demande d'installation", mais rien ne s'est produit.

La solution consistait à télécharger et à installer manuellement le package Java officiel pour OS X, qui est en Java pour OS X 2013-005.

Mise à jour: Comme mentionné dans les commentaires ci-dessous, il existe une version plus récente de ce même package:

Java pour OS X 2014-001

Java pour OS X 2014-001 (correction de la date limite ci-dessus)

Java pour OS X 2014-001 inclut des améliorations d'installation et remplace toutes les versions précédentes de Java pour OS X. Ce package installe la même version de Java 6 incluse dans Java pour OS X 2013-005.

Gars
la source
Pareil pour moi. Un autre choix consiste à installer Java à partir d'Oracle. Selon vous, lequel est le meilleur? Oracle semble avoir mis à jour Java plus rapidement qu'Apple.
Ngoc Pham
2
mais celui-ci vous donne JDK 6. Comment pouvons-nous utiliser directement JDK 6?
Shawn
2
@Shawn Apple désactive le JDK 7. déjà installé. Mais vous pouvez obtenir une FAQ et installer ici: java.com/en/download/faq/java_mac.xml mais je ne l'ai pas essayé.
Guy
Si vous avez installé à la fois java6 et java7, vous pouvez sélectionner v6 dans votre shell avec: export JAVA_HOME = / System / Library / Java / JavaVirtualMachines / 1.6.0.jdk / Contents / Home
Jürgen Strobel
1
Pourquoi voudriez-vous utiliser Java 32 bits sur un système d'exploitation 64 bits? Java 64 bits est en fait plus rapide que 32 bits sous Mavericks.
MiB
196

Si vous souhaitez uniquement installer le dernier JRE officiel d'Oracle, vous pouvez le récupérer, l'installer et exporter le nouveau JAVA_HOME dans le terminal.

  • Ouvrez votre terminal
  • java -version vous donne une erreur et un popup
  • Obtenez le JRE dmg sur http://www.oracle.com/technetwork/java/javase/downloads/index.html
  • Installez-le
  • Dans votre terminal, saisissez: export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"
  • java -version vous donne maintenant java version "1.7.0_45"

C'est la manière la plus propre que j'ai trouvée pour installer le dernier JRE.

Vous pouvez ajouter la export JAVA_HOMEligne dans votre .bashrcpour avoir en javapermanence dans votre Terminal:

echo export JAVA_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\" >> ~/.bashrc
analogue
la source
37
Je pense que cela semble un peu louche de définir JAVA_HOMEpour pointer vers ce qui est clairement un plugin de navigateur au lieu de la vraie machine virtuelle. Lorsque vous installez les outils de ligne de commande XCode, vous obtenez un outil pour obtenir le bon chemin, /usr/libexec/java_home. Voir developer.apple.com/library/mac/documentation/Darwin/Reference/… .
Ilkka
8
@Ilkka - cela semble louche, mais c'est en fait là où JRE d'Oracle s'installe. Le java d'Apple (qui s'arrête à java 6) ne se mélange pas aussi bien avec l'oracle que l'on pourrait le souhaiter
Orion Edwards
12
Un de mes collègues (qui n'a malheureusement pas la réputation requise ici pour ajouter des commentaires) souhaite ajouter que le paramètre JAVA_HOME devrait êtreexport JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home"
Stephan Windmüller
1
J'ai installé jdk7u45 depuis Oracle et j'utilise toujours export JAVA_HOME = $ (/ usr / libexec / java_home) dans mon profil bash. jdk7u45 fonctionne très bien, y compris le panneau de préférences du système java. Maintenant, je passe à jdk7u51.
MiB
2
J'ai dû ajouter export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"à ~ / .profile au lieu de ~ / .bashrc ou ~ / .bash_profile pour obtenir ce travail.
LarS
64

Le bon endroit pour télécharger le JDK pour Java 7 est Java SE Downloads .

Pour autant que je sache, tous les autres liens fournis ci-dessus fournissent les téléchargements JRE ou Java 6 (accessoirement, si vous souhaitez exécuter Eclipse ou d'autres IDE, comme IntelliJ IDEA , vous aurez besoin du JDK, pas du JRE ).

Concernant IntelliJ IDEA - cela vous demandera toujours d'installer Java 6 car il a apparemment besoin d'un chargeur de classe plus ancien ou quelque chose: suivez simplement les instructions lorsque la boîte de dialogue apparaît et il installera le JDK 6 au bon endroit.

Ensuite, vous devrez faire ce qui est sudo ln -snfmentionné dans la réponse ci-dessus:

sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents \
    /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

(copié ici car il a été mentionné que "ci-dessus" peut éventuellement ne pas avoir de sens lorsque les réponses sont triées à nouveau).

J'ai également réglé mon JAVA_HOMEpointage versjdk_1.7.0_xx.jdk installation:

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

Ajoutez ensuite cela à votre PATH :

export PATH=$JAVA_HOME/bin:$PATH

L'alternative est de fouiner avec le labyrinthe insensé d'Apple de liens hypertextes, mais honnêtement, la vie est trop courte pour déranger.

Marco Massenzio
la source
4
Voir mon commentaire à une autre réponse pour ce qui est peut-être une meilleure façon d'obtenir ce chemin.
Ilkka
1
Puisque cette réponse a plus de votes positifs, le bit qui dit sudo ln -snfdans la réponse ci-dessus n'est plus précis. Cela fait en fait référence à la réponse de M. Ronald
Karthic Raghupathi
@KarthicRaghupathi Je ne suis pas sûr de bien comprendre le commentaire (l'utilisation de thiset thatest quelque peu déroutant) mais vous avez toujours besoin d'un lien symbolique de l'emplacement / Sytem / Library / etc vers l'endroit où Oracle installe la JVM (/ Library / etc .) ou les applications ne pourront pas trouver le runtime Java.
Marco Massenzio
@Marco Maintenant que vous en parlez, quand j'ai lu mon propre commentaire, cela n'a pas vraiment de sens. :) Permettez-moi de clarifier. Dans votre réponse, vous écrivez «Après, vous devrez faire ce qui est sudo ln -snfmentionné dans la réponse ci-dessus;». Les réponses augmentent ou diminuent en fonction du nombre de votes positifs qu'elles obtiennent. Mon intention était de ne fournir qu'une référence directe à la réponse qui avait le sudo ln -snfcommandement.
Karthic Raghupathi
Modifié - mais pas vraiment sûr que la réorganisation se produit vraiment: ils semblent tous être là où ils étaient, indépendamment des votes positifs. NVM
Marco Massenzio
14

J'ai téléchargé et installé le JDK 1.7 depuis Oracle . Dans la console / dans Terminal Java 7 fonctionne très bien.

Lorsque je démarre un programme Java (comme Eclipse ) via l'interface graphique, j'obtiens:

Pour ouvrir "Eclipse.app", vous avez besoin d'un runtime Java SE 6. Souhaitez-vous en installer un maintenant?

Parce que je ne voulais pas installer l'ancienne version Java, j'ai utilisé la solution de contournement suivante:

sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

Crédits à monkehWorks .

M. Ronald
la source
1
Je dois utiliser ln -snfparce que je suis Operation not permittedavecln -sf
Lars Blumberg
Thx, j'ai édité la réponse et ajouté l'option -n à la commande ln.
M. Ronald
+1 Exactement ce que je cherchais. Merci! La CLI obtenait la référence au JDK 7 après l'installation. Cependant, pour que les applications GUI récupèrent le JDK correct, cette étape était nécessaire.
Karthic Raghupathi
J'étais plein d'espoir, mais cela n'a pas fonctionné pour moi. Android Studio 0.3.2 insiste sur le "téléchargement de Java 6", ce que je ne vais pas faire. Oracle Java 7 JDK est installé.
akauppi
Vous avez besoin d'une version 64 bits d'Eclipse. Le 32 bits nécessite Apple java.
Thorbjørn Ravn Andersen
4

Cette erreur se produit car le fichier plist d'IntelliJ IDEA nécessite Java version 1.6 *. Pour résoudre ce problème, remplacez le 1.6 * par 1.8 *.

<key>JVMOptions</key>
<dict>
    <key>ClassPath</key>
      ...

    <key>JVMVersion</key>
    <string>1.8*</string>

    <key>MainClass</key>
    <string>com.intellij.idea.Main</string>
    <key>Properties</key>
<dict>
Fabio Fumarola
la source
Cela l'a fait pour moi. Mon problème était lorsque j'ai mis à jour vers osx 10.9, je pouvais toujours accéder à Java depuis le terminal et tout le reste (y compris eclipse fonctionnait bien). Seul Android Studio était à l'origine de cette erreur.
ucsunil
Cela n'a pas fonctionné pour moi sur OS X 10.10.1, il se plaint qu'aucune version 1.8 n'est disponible (même si le JRE 8 est correctement installé).
Emmanuel Bourg
Avez-vous vérifié si JAVA_HOME est défini?
Fabio Fumarola
3

L'OP impliquait que Java 7 était le besoin. Et Java 6 n'est en fait plus `` pris en charge '', donc 7 est la version que vous devez installer à ce stade, sauf si vous avez des problèmes avec les applications héritées.

Vous pouvez l'obtenir ici: http://java.com/en/download/mac_download.jsp?locale=en

Rondo
la source
Nous ne devons pas supposer que la distribution actuelle d'Apple de Java 6 n'est pas prise en charge.
Graham Perrin
J'ai placé le mot «pris en charge» entre guillemets afin d'éviter d'essayer de résoudre un problème compliqué. Oracle facture pour tout support de 6 ... et ces frais de support s'appliqueraient logiquement à Apple également; Ainsi, Apple est «seul» sans contrat. En ont-ils un et prévoient-ils de travailler avec les correctifs pour MacOSX? Le contrat permet-il toujours une redistribution? Maintenant, il y a eu 2 mises à jour Java 7 d'Oracle depuis la dernière mise à jour d'Apple à 6. Historiquement, elles ont tendance à verrouiller les versions. Hypothèse, peut-être; Une hypothèse sûre? Semble si.
Rondo
3

Mon expérience pour la mise à jour du SDK Java sur OS X 10.9 a été beaucoup plus facile.

J'ai téléchargé la dernière version à Java SE Development Kit 8partir des téléchargements SE et installé le fichier .dmg. Et lors de la saisie java -versiondu terminal, les informations suivantes s'affichent:

version java "1.8.0_11"

Environnement d'exécution Java (TM) SE (build 1.8.0_11-b12)

Machine virtuelle serveur Java HotSpot (TM) 64 bits (build 25.11-b03, mode mixte)

Muhammad Reda
la source
1

Du PO:

Je l'ai enfin réinstallé à partir de Java pour OS X 2013-005. Il a résolu ce problème.

Eric Leschinski
la source
1

Cette erreur signifie que Java n'est pas correctement installé.

1) brew cask install java (No need to install cask separately it comes with brew)

2) java -version

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)

PS - Qu'est-ce que le brew-cask? Homebrew-Cask étend Homebrew et résout les tracas de l'exécution d'une commande supplémentaire - «Pour installer, faites glisser cette icône…» après avoir installé une application à l'aide de Homebrew .

NB - Ce problème n'est pas spécifique aux Mavericks, vous obtiendrez presque tous les OS X, y compris EL Capitan.

saveur
la source
0

Il n'est pas nécessaire d'installer le JDK, qui est le kit de développement , juste le JRE qui est l' environnement d'exécution .

dmz
la source
6
C'est vrai. Cependant, ce qu'Apple fournit est le JDK et le JRE d'Oracle est juste là pour le plugin Internet, la javacommande n'est pas liée automatiquement à l'échelle du système, vous voyez donc toujours "Pas d'exécution Java présente, demandant l'installation". lorsque vous tapez java -versiondans le terminal.
Ngoc Pham