Penso che tu possa tenere traccia di tutto questo controllando dove sono collegati i tuoi file binari 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
e infine:
#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
pertanto, la mia installazione di java è:
/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
Suppongo che tu possa tenere traccia di qualsiasi binario come questo.
Scoprire quale binario viene eseguito quando si digita solo il nome viene fatto usando which
e utilizzando readlink
puoi condensare il processo in una singola riga.
readlink -e $(which java)
readlink -e
stampa il valore di un collegamento simbolico o di un nome di file canonico e -e assicura che segua ogni componente in modo ricorsivo.
[email protected]:~$ readlink -e $(which java)
/usr/lib/jvm/java-6-openjdk-i386/jre/bin/java
nota:non ho javac installato sulla macchina su cui l'ho testato, quindi ho usato solo java, ma quanto sopra funzionerà con qualsiasi binario.
Sembra che tu stia anche chiedendo di scoprire quale versione di Java si trova in una cartella specifica? Per questo basta fare questo,
/full/path/java -version
che impedisce a Linux di cercare il percorso e trovare direttamente il binario java. Nel tuo caso,
/usr/lib/jvm/java-7-oracle/javac -version