Автор оригинала: Pankaj Kumar.
Иногда нам нужно проверить версию Java во время выполнения программы Java. Мы могли бы разрабатывать наш проект на локальной машине, но развертывать его на удаленном сервере, поэтому нам нужно проверить версию java, чтобы убедиться, что наша программа будет работать нормально.
Как проверить версию Java?
Мы можем легко проверить версию java с помощью командной строки. Мы можем использовать любую из следующих команд для печати версии java.
$java -version $java --version
java -версия
выведет версию в поток ошибок и завершит работу.
java --version
выведет свою версию в поток вывода и завершит работу.
Обратите внимание, что каталог JDK или JRE bin должен находиться в переменной PATH, иначе вы получите сообщение об ошибке, так как команда java не найдена
.
У меня на MacBook установлены Java 8 , Java 9 и Java 10, поэтому давайте посмотрим, каков результат выполнения команды проверки версии java.
Вывод Java Версии 10
$ java -version java version "10.0.1" 2018-04-17 Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10) Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode) $
Обратите внимание , что версия имеет форму $FEATURE.$INTERIM.$UPDATE.$PATCH
, поэтому из приведенных выше выходных данных мы можем сделать вывод, что функция равна 10, Промежуточная-0, Обновление равно 1, а исправление равно 0.
Во второй строке то, что вы видите после+, называется номером сборки. Таким образом, сборка составляет 10. Обратите внимание, что это соглашение об именовании появилось в самой Java 10. Так что в старых версиях Java все будет немного по-другому.
Вывод Java Версии 9
$ java -version java version "9" Java(TM) SE Runtime Environment (build 9+181) Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode) $
Вывод Java Версии 8
$ cd /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/bin/ $ ./java -version java version "1.8.0_131" Java(TM) SE Runtime Environment (build 1.8.0_131-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode) $
Вывод Java версии 11
$ java -version openjdk version "11.0.1" 2018-10-16 OpenJDK Runtime Environment 18.9 (build 11.0.1+13) OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode) $
Можем ли мы проверить версию java программно?
Что делать, если мы хотим убедиться, что наш код работает на совместимой версии java, и, возможно, выйти из приложения, если это не так. Мы также можем проверить версию java в программе. Ниже приведены фрагменты кода, в которых показано, как программно проверить версию java.
Код проверки версии Java для Java 10
Version version = java.lang.Runtime.version(); System.out.println("Java Version = "+version); System.out.println("Java Version Feature Element = "+version.feature()); System.out.println("Java Version Interim Element = "+version.interim()); System.out.println("Java Patch Element Version = "+version.patch()); System.out.println("Java Update Element Version = "+version.update()); System.out.println("Java Version Build = "+version.build().get()); System.out.println("Java Pre-Release Info = "+version.pre().orElse("NA"));
Выход:
Java Version = 10.0.1+10 Java Version Feature Element = 10 Java Version Interim Element = 0 Java Patch Element Version = 0 Java Update Element Version = 1 Java Version Build = 10 Java Pre-Release Info = NA
Обратите внимание, что вывод программы совпадает с выводом команды java-версия
.
Код проверки версии Java для Java 9
Version version = java.lang.Runtime.version(); System.out.println("Java Version = "+version); System.out.println("Java Major Version = "+version.major()); System.out.println("Java Minor Version = "+version.minor()); System.out.println("Java Security Version = "+version.security()); System.out.println("Java Version Build = "+version.build().get()); System.out.println("Java Version Pre-Release Info = "+version.pre().orElse("NA"));
Версия
класс был впервые представлен в Java 9, в версии java 10 основные, второстепенные и свойства безопасности были устаревшими. Если мы выполним приведенный выше фрагмент кода для Java 9, мы получим следующий вывод:
$ java JavaVersion Java Version = 9+181 Java Major Version = 9 Java Minor Version = 0 Java Security Version = 0 Java Version Build = 181 Java Version Pre-Release Info = NA
Версия Java Проверьте код для версий Java 8 или ниже
Для Java 8 или ниже мы можем использовать свойства системы, чтобы получить подробную информацию о версии Java.
System.out.println(System.getProperty("java.version")); System.out.println(System.getProperty("java.specification.version"));
Выход:
1.8.0_131 1.8