Ich denke, Sie können all dies nachverfolgen, indem Sie überprüfen, wo Ihre Java-Binärdateien verlinkt sind.
#which javac
/usr/bin/javac
#ls -ln /usr/bin/java
lrwxrwxrwx. 1 0 0 22 Nov 27 04:54 /usr/bin/java -> /etc/alternatives/java
#ls -ln /usr/bin/javac
lrwxrwxrwx. 1 0 0 23 Nov 27 04:54 /usr/bin/javac -> /etc/alternatives/javac
# ls -ln /usr/bin/javadoc
lrwxrwxrwx. 1 0 0 25 Nov 27 04:54 /usr/bin/javadoc -> /etc/alternatives/javadoc
und schließlich:
#ls -ld /etc/alternatives/java
lrwxrwxrwx. 1 root root 46 Nov 27 04:54 /etc/alternatives/java -> /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
Daher ist meine Java-Installation:
/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
Ich nehme an, Sie können jede Binärdatei wie diese verfolgen.
Um herauszufinden, welche Binärdatei ausgeführt wird, wenn Sie nur den Namen eingeben, verwenden Sie which
, und verwenden Sie readlink
Sie können den Vorgang auf eine einzige Zeile zusammenfassen.
readlink -e $(which java)
readlink -e
gibt den Wert eines symbolischen Links oder kanonischen Dateinamens aus, und das -e stellt sicher, dass jeder Komponente rekursiv folgt.
[email protected]:~$ readlink -e $(which java)
/usr/lib/jvm/java-6-openjdk-i386/jre/bin/java
Hinweis:Ich habe Javac nicht auf dem Rechner installiert, auf dem ich das getestet habe, also habe ich nur Java verwendet, aber das obige funktioniert für jede Binärdatei.
Sie scheinen auch zu fragen, welche Version von Java sich in einem bestimmten Ordner befindet? Dazu tun Sie einfach Folgendes,
/full/path/java -version
Dies verhindert, dass Linux den Pfad durchsucht und die Java-Binärdatei direkt findet. In Ihrem Fall
/usr/lib/jvm/java-7-oracle/javac -version