web-dev-qa-db-fra.com

Vérifier la version de Java sans la version Java

J'obtiens l'erreur suivante en essayant de compiler ou d'exécuter tout ce qui concerne Java ou javac:

Error occurred during initialization of VM
Java/lang/ClassNotFoundException: error in opening JAR file <Zip file open error> /usr/lib/jvm/Java-8-Oracle/jre/lib/rt.jar

J'ai lu ici que je devrais désinstaller et installer à nouveau JDK, ici il est écrit que je devrais savoir quelle version de Java j'ai installé sur mon pc afin de le désinstaller.

Pour vérifier la version installée, je lance Java -version mais j'obtiens l'erreur mentionnée ci-dessus. Comment puis-je vérifier ma version Java sans cette commande?

Je sais que j’ai installé Java 8 mais je ne sais pas exactement de quelle version il s’agit.

6
Zeno Raiser

Vous pouvez utiliser cette commande pour vérifier votre version Java:

update-alternatives --config Java
2
Eranda Peiris

Pour indiquer quelle version de Java est installée sans exécuter Java -version, ouvrez le terminal et tapez:

apt policy openjdk-* Oracle-Java* 

Une petite partie des résultats de apt policy openjdk-* ressemble à ceci:

openjdk-7-jre-lib:
  Installed: (none)
  Candidate: (none)
  Version table:
openjdk-8-jdk:
  Installed: 8u162-b12-0ubuntu0.16.04.2
  Candidate: 8u162-b12-0ubuntu0.16.04.2

Recherchez les sections contenant openjdk-*-jre, openjdk-*-jdk ou Oracle-Java* où le caractère générique * peut être un numéro de version Java comme 6, 7, 8. ou 9.

6
karel

Vous pouvez découvrir le chemin complet de l'exécutable par défaut Java avec:

readlink -f "$(which Java)"

Tous les paquets (ou solutions) Java que je connais utilisent des noms de chemin d’installation qui incluent le nom du fournisseur et le numéro de version majeure qui répondraient à votre question. Par exemple. sur mon système

$ readlink -f "$(which Java)"
/usr/lib/jvm/Java-9-openjdk-AMD64/bin/Java

m'indique que l'installation par défaut de Java est OpenJDK 9.

5
David Foerster

Vous pouvez aussi essayer:

dpkg -l | egrep -i 'jre|Java|jdk'
3
muclux