168 votes

Comment puis-je vérifier si le JDK Java est installé sur Mac ?

Comment vérifier si Java SDK est installé sur un Mac ?

Existe-t-il une ligne de commande pour cela ?

227voto

RC. Points 18567

javac -version dans un terminal fera

99voto

Tuxdude Points 8652

Vous pouvez tirer parti de la java_home binaire d'aide sur OS X pour ce que vous recherchez.

Pour lister toutes les versions du JDK installé :

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
    1.8.0_51, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home
    1.7.0_79, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home

Pour demander le chemin JAVA_HOME d'une version spécifique de JDK, vous pouvez faire :

$ /usr/libexec/java_home -v 1.7
/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home

$ /usr/libexec/java_home -v 1.8
/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home

Vous pourriez tirer parti des commandes ci-dessus dans votre script comme ceci :

REQUESTED_JAVA_VERSION="1.7"
if POSSIBLE_JAVA_HOME="$(/usr/libexec/java_home -v $REQUESTED_JAVA_VERSION 2>/dev/null)"; then
    # Do this if you want to export JAVA_HOME
    export JAVA_HOME="$POSSIBLE_JAVA_HOME"
    echo "Java SDK is installed"
else
    echo "Did not find any installed JDK for version $REQUESTED_JAVA_VERSION"
fi

Vous pouvez également faire un if-else et vérifier plusieurs versions différentes de Java.

Si vous préférez une sortie XML, java_home dispose également d'une option -X pour une sortie en XML.

$ /usr/libexec/java_home --help
Usage: java_home [options...]
    Returns the path to a Java home directory from the current user's settings.

Options:
    [-v/--version   <version>]       Filter Java versions in the "JVMVersion" form 1.X(+ or *).
    [-a/--arch      <architecture>]  Filter JVMs matching architecture (i386, x86_64, etc).
    [-d/--datamodel <datamodel>]     Filter JVMs capable of -d32 or -d64
    [-t/--task      <task>]          Use the JVM list for a specific task (Applets, WebStart, BundledApp, JNI, or CommandLine)
    [-F/--failfast]                  Fail when filters return no JVMs, do not continue with default.
    [   --exec      <command> ...]   Execute the $JAVA_HOME/bin/<command> with the remaining arguments.
    [-R/--request]                   Request installation of a Java Runtime if not installed.
    [-X/--xml]                       Print full JVM list and additional data as XML plist.
    [-V/--verbose]                   Print full JVM list with architectures.
    [-h/--help]                      This usage information.

14voto

asgoth Points 14599

Tapez dans un terminal :

which javac

Il devrait vous montrer quelque chose comme

/usr/bin/javac

9voto

La commande ci-dessous a plutôt bien fonctionné :

javac -version

J'ai aussi vérifié manuellement en allant dans le dossier Java de mon Mac.

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

3voto

ramzes2 Points 528

/usr/bin/java_home L'outil renvoie 1 si java n'est pas installé.

Vous pouvez donc vérifier si java est installé de la manière suivante :

/usr/libexec/java_home &> /dev/null && echo "installed" || echo  "not installed"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X