Toto je mírná variace, ale řešení PJW mi úplně nefungovalo:
java -version 2>&1 | head -n 1 | cut -d'"' -f2
stačí odstřihnout řetězec na oddělovači "
(dvojité uvozovky) a získejte druhé pole.
- Přesměrujte stderr na stdout.
- Získejte první řádek
-
Filtrujte číslo verze.
java -version 2>&1 | head -n 1 | awk -F '"' '{print $2}'
Navrhoval bych použít grep -i version
abyste se ujistili, že získáte správný řádek obsahující řetězec verze. Pokud máte nastavenou proměnnou prostředí JAVA_OPTIONS, openjdk před tiskem informací o verzi vypíše možnosti Java. Tato verze vrací 1.6, 1.7 atd.
java -version 2>&1 | grep -i version | cut -d'"' -f2 | cut -d'.' -f1-2