Creo que puede realizar un seguimiento de todo esto comprobando dónde están vinculados sus archivos binarios de Java.
#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
y finalmente:
#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
por lo tanto, mi instalación de Java es:
/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
Supongo que puedes rastrear cualquier binario como este.
Averiguar qué binario se ejecuta cuando escribe solo el nombre se hace usando which
y usando readlink
puede condensar el proceso en una sola línea.
readlink -e $(which java)
readlink -e
imprime el valor de un enlace simbólico o nombre de archivo canónico, y la -e asegura que sigue a cada componente recursivamente.
[email protected]:~$ readlink -e $(which java)
/usr/lib/jvm/java-6-openjdk-i386/jre/bin/java
nota:no tengo javac instalado en la máquina en la que probé esto, así que solo usé java, pero lo anterior funcionará para cualquier binario.
¿También parece estar preguntando qué versión de Java está en una carpeta específica? Para eso solo haces esto,
/full/path/java -version
lo que evita que Linux busque la ruta y encuentre el binario java directamente. En tu caso,
/usr/lib/jvm/java-7-oracle/javac -version