Je ne peux pas répondre entièrement à votre question, mais je peux vous donner quelques indications pratiques.
TL:DR ;
Je pense que /usr/bin/java
est une application proxy, faisant partie de MacOS, qui appelle la fonction java
dans l'installation courante de Java telle que définie par la commande JAVA_HOME
env var.
Il en va de même pour toutes les commandes liées à java dans la rubrique /usr/bin
Plus de détails
J'ai installé (manuellement, en dézippant les openjdks dans /Library/Java/JavaVirtualMachines/
) de nombreuses versions de Java, et il suffit de définir un JAVA_HOME différent pour que la version change :
$ JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home && java -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b16, mixed mode)
$ JAVA_HOME=/Library/Java/JavaVirtualMachines/amazon-corretto-11.jdk/Contents/Home/ && java -version
openjdk version "11.0.11" 2021-04-20 LTS
OpenJDK Runtime Environment Corretto-11.0.11.9.1 (build 11.0.11+9-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.11.9.1 (build 11.0.11+9-LTS, mixed mode)
$ JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-16.0.1.jdk/Contents/Home/ && java -version
openjdk version "16.0.1" 2021-04-20
OpenJDK Runtime Environment (build 16.0.1+9-24)
OpenJDK 64-Bit Server VM (build 16.0.1+9-24, mixed mode, sharing)
Toutes les commandes Java dans /usr/bin
ont la même taille (136Kb dans mon cas) :
$ ll -h /usr/bin/ja*
-rwxr-xr-x 1 root wheel 136K Jan 1 2020 /usr/bin/jar
-rwxr-xr-x 1 root wheel 136K Jan 1 2020 /usr/bin/jarsigner
-rwxr-xr-x 1 root wheel 136K Jan 1 2020 /usr/bin/java
-rwxr-xr-x 1 root wheel 136K Jan 1 2020 /usr/bin/javac
-rwxr-xr-x 1 root wheel 136K Jan 1 2020 /usr/bin/javadoc
-rwxr-xr-x 1 root wheel 136K Jan 1 2020 /usr/bin/javah
-rwxr-xr-x 1 root wheel 136K Jan 1 2020 /usr/bin/javap
-rwxr-xr-x 1 root wheel 136K Jan 1 2020 /usr/bin/javapackager
-rwxr-xr-x 1 root wheel 136K Jan 1 2020 /usr/bin/javaws
En fait, de nombreux fichiers dans /usr/bin
sont les mêmes :
$ find /usr/bin | sort | xargs md5 | grep d50afbfa4f5d05e8db7ad88c30390888
MD5 (/usr/bin/appletviewer) = d50afbfa4f5d05e8db7ad88c30390888
MD5 (/usr/bin/apt) = d50afbfa4f5d05e8db7ad88c30390888
MD5 (/usr/bin/extcheck) = d50afbfa4f5d05e8db7ad88c30390888
MD5 (/usr/bin/idlj) = d50afbfa4f5d05e8db7ad88c30390888
MD5 (/usr/bin/jar) = d50afbfa4f5d05e8db7ad88c30390888
MD5 (/usr/bin/jarsigner) = d50afbfa4f5d05e8db7ad88c30390888
MD5 (/usr/bin/java) = d50afbfa4f5d05e8db7ad88c30390888
MD5 (/usr/bin/javac) = d50afbfa4f5d05e8db7ad88c30390888
MD5 (/usr/bin/javadoc) = d50afbfa4f5d05e8db7ad88c30390888
MD5 (/usr/bin/javah) = d50afbfa4f5d05e8db7ad88c30390888
.
.
.
Dans "System Information.app > Software > Installation", je ne trouve pas d'installation spécifique. Jan 1 2020
Je vois que j'ai installé Catalina le 2019-10-12 et Big Sur le 2020-12-04 (tous les fichiers dans /usr/bin
avoir une date Jan 1 2020
).
En outre pkgutil
ne m'indique pas à quelle installation de paquetage l'option /usr/bin/java
appartient aux commandes :
$ pkgutil --file-info /usr/bin/java
volume: /
path: /usr/bin/java
Je pense qu'il fait partie de MacOS et qu'il a été installé (ou mis à jour) par Big Sur.
Faites-moi savoir si j'ai oublié quelque chose ou si j'ai plus d'informations pour une image plus claire :-)