Comment faire pour récupérer la version Java à l'aide de simple ligne de commande sous Linux
Je veux extraire la version de Java sous Linux en une seule commande.
Je suis nouveau sur awk donc je suis en train d'essayer quelque chose comme
java -version|awk '{print$3}'
Mais qui ne retourne pas de la version. Comment pourrais-je récupérer la 1.6.0_21
de la ci-dessous la version Java de sortie?
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode)
Vous devez vous connecter pour publier un commentaire.
Filtre le numéro de version.
AIX
machine disantawk: can't open {print$2}
. Quel pourrait être le problème?java -version 2>&1 | head -n 1 | awk -F '"' '{print $2}' | awk -F '.' '{print $2}'
si vous voulez simplement le numéro de version majeur.C'est une légère variation, mais PJW la solution n'a pas assez de travail pour moi:
juste de couper la corde sur le délimiteur
"
(guillemets doubles) et d'obtenir le deuxième champ.Je suggérerais à l'aide de
grep -i version
pour vous assurer d'obtenir le droit de la ligne contenant la chaîne de version. Si vous avez la variable d'environnement JAVA_OPTIONS ensemble, openjdk imprime les options java avant d'imprimer les informations de version. Cette version retourne 1.6, 1.7, etc.Depuis (au moins sur mon système linux) la chaîne de version ressemble à "1.8.0_45":
if [[ $token =~ "\"([[:digit:]])\.([[:digit:]])\.(.*)\"" ]]
Vous pouvez utiliser
--version
et dans ce cas, il n'est pas nécessaire pour la redirection de la sortie standard stdoutDe java aider
Ne prendre que les "grands" build #:
Cette façon fonctionne pour moi.