web-dev-qa-db-fra.com

Comment installer Java 8 sur Mac

Je souhaite faire de la programmation avec le dernier JavaFX, qui nécessite Java 8. J'utilise IntelliJ 13 CE et Mac OS X 9 Mavericks. J'ai exécuté le programme d'installation Java 8 d'Oracle, et les fichiers ont l'air d'être 

/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk

mais les versions précédentes sont à 

/System/Library/Java/JavaFrameworks/jdk1.6....

Vous ne savez pas pourquoi le dernier programme d'installation met ceci dans /Library au lieu de /System/Library (ni quelle est la différence). Mais /usr/libexec/Java_home ne trouve pas 1.8, donc tous les articles que j'ai trouvés sur la façon de définir votre version Java actuelle ne fonctionnent pas. J'ai essayé d'ajouter un lien symbolique pour donner l'impression que 1.8 se trouve dans le chemin /System/Library..., mais cela n'aide pas. /usr/libexec/Java_home -V ne répertorie toujours que l'ancien Java 1.6.

Ironiquement, le panneau de configuration "Java" sous Préférences Système ne montre que Java 1.8!

Pourquoi le programme d'installation d'Oracle ne le met-il pas vraiment à jour? Et comment puis-je contourner ce problème?

618
user3763100

Pour El Capitan , Sierra et High Sierra

Commencez par installer et mettre à jourbrewà partir du terminal:

/usr/bin/Ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew tap caskroom/versions

brew update

Java 8:

brew cask install Java8

Dernière version de Java:

brew cask install Java
397
kavehmb

Je viens de faire cela sur mon MBP, et ai dû utiliser

$ brew tap caskroom/versions
$ brew cask install Java8

afin d'obtenir Java8 à installer.

109
Jain Waldrip

Une option que je commence à vraiment aimer pour exécuter des applications sur mon ordinateur local est d'utiliser Docker. Vous pouvez simplement exécuter votre application dans le conteneur JDK officiel, ce qui signifie que vous n'avez pas à vous soucier de tout configurer sur votre ordinateur local (ni à exécuter plusieurs versions différentes du JDK pour différentes applications, etc.).

Bien que cela ne vous aide peut-être pas à résoudre vos problèmes d’installation actuels, c’est une solution qui vous permet d’éviter les problèmes liés à l’obtention de l’exécution correcte de Java sur votre machine de développement!

Les avantages sont:

  1. Il n'est pas nécessaire de configurer une version de Java sur votre ordinateur local (vous exécuterez simplement Java dans un conteneur extrait de Docker Hub).
  2. Très facile de basculer vers les différentes versions de Java en changeant simplement l’étiquette sur le conteneur.
  3. Les dépendances du projet sont installées dans le conteneur. Ainsi, si vous gâchez votre configuration, vous pouvez simplement désactiver le conteneur et recommencer. 

Un exemple très simple: 

Créez une Dockerfile:

FROM Java:8
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
  • Nous spécifions ici le conteneur Java exécutant la version 8 du SDK (Java:8 - pour utiliser Java 7, vous pouvez simplement spécifier: Java:7). 
  • Nous mappons le répertoire local avec le répertoire: /usr/src/myapp à l'intérieur du conteneur

Créez un fichier docker-compose.yml:

version: "2"

services:
  Java:
    build: .
    volumes:
      - .:/usr/src/myapp

Supposons maintenant que nous avons ce fichier Java: 

HelloWorld.Java

public class HelloWorld {
    public static void main(String[] args) {        
        System.out.println("Hello, World");
    }
}

Nous avons donc la structure de fichier suivante:

.
|_ Dockerfile
|_ docker-compose.yml
|_ HelloWorld.Java

Vous pouvez faire différentes choses en Java comme:

compiler:

docker-compose run --rm Java javac HelloWorld.Java 
  • Notez que le fichier HelloWorld.class apparaît dans votre répertoire actuel (c'est parce que nous avons mappé le répertoire actuel à l'emplacement dans le conteneur où notre code existe)

courir:

docker-compose run --rm Java java HelloWorld 
  • Remarque: la première fois que vous exécutez ceci, l'image sera récupérée, etc. Cela prendra un certain temps - cela ne se produit que la première fois.
  • docker-compose run - exécute une commande depuis le conteneur
  • -rm indique à docker de supprimer le conteneur une fois la commande exécutée
  • Java est le nom du service/conteneur (de notre fichier docker-compose) avec lequel cette commande sera exécutée
  • le reste de la ligne est la commande à exécuter à l'intérieur du conteneur.

C’est une façon plutôt agréable de gérer différentes versions de Java pour différentes applications sans gâcher complètement votre configuration locale :).

Voici un exemple un peu plus complexe qui a Maven et une simple application Spring

Avertissement:

51
toast38coza

J'ai le même problème à résoudre, car je dois installer JDK8 pour exécuter Android SDK Manager (car il semble que cela ne fonctionne pas bien avec JDK9) . Cependant, je vous explique comment résoudre tous les problèmes Mac (Sierra).

Tout d’abord, vous avez besoin de brasser avec tonneau et de jenv.

  1. Vous pouvez trouver un guide utile ici, Guide d'installation de Homebrew Cask . N'oubliez pas d'appuyer sur 'caskroom/versions' s'exécutant sur le terminal: brew tap caskroom/versions
  2. Après cela, installez jenv avec: brew install jenv
  3. Installez la version de votre choix avec cask brew cask install Java8 (ou Java7 ou Java si vous souhaitez installer la dernière version, jdk9)
  4. La dernière étape consiste à configurer la version à exécuter (et à permettre à jenv de gérer votre Java_HOME) jenv versions pour répertorier toutes les versions installées sur votre ordinateur, puis activer celle que vous souhaitez avec jenv global [JDK_NAME_OF_LIST].

Vous pouvez trouver d'autres informations utiles ici sur ce Github Gist brew-Java-and-jenv.md , sur ce blog installer plusieurs JDK sur un Mac et sur Site Jenv

23
Benedetto Abbenanti

Java8 n'est plus disponible sur l'homebrew, brew install Java8 ne fonctionnera pas.

Au lieu de cela, utilisez:

brew cask install adoptopenjdk/openjdk/adoptopenjdk8

Voir this commit pour plus de détails techniques.

Notez également que vous pouvez rencontrer des problèmes autour de Cask adoptopenjdk8 exists in multiple taps. Il s'agit d'un problème connu, en cours de traitement, que vous pouvez voir ici:

https://github.com/AdoptOpenJDK/homebrew-openjdk/issues/106

Pour ceux qui ne veulent pas passer au travers des détails, voici un résumé:

# To install JDK8
brew cask install adoptopenjdk/openjdk/adoptopenjdk8

# To be able to safely run 'brew cleanup'
brew untap adoptopenjdk/openjdk
brew untap caskroom/versions
brew cleanup
21
Dave Kerr

cask brasser installer caskroom/versions/Java8

14
Arun

J'ai des applications qui utilisent à la fois Java 7 et 8 et doivent aller et venir tout le temps.

J'utilise ce script écrit par Johan:

http://www.jayway.com/2014/01/15/how-to-switch-jdk-version-on-mac-os-x-maverick/

Vous pouvez maintenant le définir au démarrage ou appeler le script par la suite.
Installez le JDK pour Mac.

Java 7

http://www.Oracle.com/technetwork/Java/javase/downloads/jdk7-downloads-1880260.html

Java 8

http://www.Oracle.com/technetwork/Java/javase/downloads/jdk8-downloads-2133151.html

11
Nathan Dunn

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

10
nxhoaf

Exécutez ces commandes sur mac High Sierra

brew update
brew tap caskroom/versions
brew cask install Java8

et vérifier avec la commande

Java -version
9
TLbiz

Le meilleur moyen est d’utiliser le gestionnaire de paquets Brew mais la commande

 brew cask install Java8

échoue avec erreur:

Error: No available formula with the name "Java8" 

Alors utilisez

brew cask install caskroom/versions/Java8

Comment ai-je trouvé "caskroom/versions/Java8": à l'aide de la commande de recherche de bière:

brew cask search Java8
7
Navjot Bhardwaj

Utilisation de la bière

brew install Caskroom/cask/Java
7
Santhosh

Hypothèse: machine Mac et vous avez déjà installé homebrew.

Installer le fût:

$ brew tap caskroom/cask
$ brew tap caskroom/versions

Pour installer la dernière version de Java:

$ brew cask install Java

Pour installer Java 8:

$ brew cask install Java8

Si vous voulez installer/gérer plusieurs versions, vous pouvez utiliser 'jenv':

Installez et configurez jenv:

$ brew install jenv
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

Ajoutez le Java installé à jenv:

$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
$ jenv add /Library/Java/JavaVirtualMachines/jdk1.11.0_2.jdk/Contents/Home

Pour voir tout le Java installé:

$ jenv versions

La commande ci-dessus donnera la liste des programmes Java installés:

* system (set by /Users/lyncean/.jenv/version)
1.8
1.8.0.202-ea
Oracle64-1.8.0.202-ea

Configurez la version Java que vous souhaitez utiliser:

$ jenv global Oracle64-1.6.0.39

Pour définir Java_HOME:

$ jenv enable-plugin export
6
Lyncean Patel

Le moyen le plus simple -

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)

P.S - Qu'est-ce que le brassin de bière? Homebrew-Cask étend Homebrew et résout le problème 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 .

3
sapy

Il semble que personne n'ait encore mentionné le SDK man ( https://sdkman.io/ ).

SKD man permet d’installer plusieurs versions de Java sur Mac et de basculer facilement entre ces versions. Plus d'informations sont disponibles sur https://sdkman.io/usage .

Par exemple:

$ sdk list Java                                                                                                                                                                                                                       
================================================================================
Available Java Versions
================================================================================
   * 12.ea.20-open
     11.0.1-zulu
 > * 11.0.1-open
     10.0.2-zulu
     10.0.2-open
     9.0.7-zulu
     9.0.4-open
     8.0.192-zulu
     8.0.191-Oracle
   + 8.0.181-Oracle
     7.0.181-zulu
     1.0.0-rc-10-grl
     1.0.0-rc-9-grl
     1.0.0-rc-8-grl


================================================================================
+ - local version
* - installed
> - currently in use
================================================================================

$ sdk install Java 8.0.191-Oracle

$ sdk use Java 8.0.191-Oracle

Using Java version 8.0.191-Oracle in this Shell.                                                                                                                                                                                                      

$ Java -version                                                                                                                                                                                                                        
Java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

$ sdk use Java 11.0.1-open                                           

Using Java version 11.0.1-open in this Shell.

$ Java -version                                                                                                                                                                                                                        openjdk version "11.0.1" 2018-10-16
OpenJDK Runtime Environment 18.9 (build 11.0.1+13)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)
                                                                                                                                                                                                         ```


3
stderr

Le plus simple consiste à télécharger le fichier dmg à partir du site suivant et à l’installer par un double clic

http://www.Oracle.com/technetwork/Java/javase/downloads/jdk8-downloads-2133151.html

rechercher les machines virtuelles disponibles dans le répertoire de base

ls -al /Library/Java/JavaVirtualMachines

et mettre à jour le fichier .bash_profile avec la version appropriée

export Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_XXX.jdk./Contents/Home
export PATH=$Java_HOME/bin:$PATH

et enfin 

source ~/.bash_profile
2
vimal krishna

Si vous l'utilisezPASà des fins personnelles, vous pouvez utiliser OpenJDK à la place pour éviter toute poursuite éventuelle de la part d'Oracle.

brew cask install adoptopenjdk8
2
Edmund Lee

Essayez:

tonneau de bière installer Java 8 , il donnera le résultat ci-dessous

8 adoptons les adoptions pour corriger les erreurs corrigées8 icônes vmware-fusion8 x48 zulu8

Ensuite, entrez: installation du fût de bière adoptopenjdk8 ---- Java 8 sera installé sur Mac.

0
arg

Je suggérerais d'utiliser l'homme du SDK qui est assez facile à changer de version (temporaire et permanente) et fournit d'autres SDK. J'utilise l'homme du SDK depuis plus d'un an maintenant.

https://sdkman.io/

0
saif ali