Hoe vind ik welke versie van Java in de Java-geïnstalleerde map?
Geplaatst op februari 16, 2021 door adminEen versie van java is geïnstalleerd op mijn Linux-machine. Wanneer ik dit probeer:
root @ test $: javac -version
Het gaf het resultaat als:
javac jdk1.7.0_80.
Nu is mijn probleem dat ik niet weet waar die (1.7.0_80) java-map is. Ik heb een map met de naam “ java-7-oracle “in usr / lib / jvm. Ik vermoed dat dit de map zou zijn voor de geïnstalleerde versie van java.
Nu heb ik een java-map en ik wil weten welke versie van java het is?
Hoe ??
Antwoord
Ik denk dat je dit allemaal kunt volgen door te kijken waar je java binaries waarnaar gelinkt is.
#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
en tenslotte:
#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
daarom mijn java-installatie is:
/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
Ik neem aan dat je elk binair bestand op deze manier kunt volgen.
Answer
Uitzoeken welk binair bestand wordt uitgevoerd wanneer u alleen de naam typt, wordt gedaan met which
en met readlink
je kunt het proces tot één regel samenvatten.
readlink -e $(which java)
readlink -e
drukt de waarde af van een symbolische link of een canonieke bestandsnaam, en de -e zorgt ervoor dat elke component recursief wordt gevolgd.
tony@trinity:~$ readlink -e $(which java) /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java
opmerking: ik heb geen javac geïnstalleerd op de machine waarop ik dit heb getest, dus heb alleen java gebruikt, maar het bovenstaande werkt voor elk binair bestand.
Je lijkt ook te vragen om uit te zoeken welke versie van java is in een specifieke map? Daarvoor doe je dit gewoon,
/full/path/java -version
wat Linux verhindert het pad te doorzoeken en het binaire java-bestand rechtstreeks te vinden. In jouw geval
/usr/lib/jvm/java-7-oracle/javac -version
Answer
Op Debian en zijn afgeleiden zou je gebruik:
update-alternatives --config java
Of
update-alternatives --list java
Met –config optie kunt u de vereiste java uit een lijst met alternatieven.
Geef een reactie