如何检查Java版本
时间:2020-02-23 14:33:59 来源:igfitidea点击:
有时我们需要在执行Java程序时检查Java版本。
我们可能会在本地计算机上开发项目,但会在远程服务器上进行部署,因此我们需要验证Java版本以确保程序能够正常运行。
如何查看Java版本?
我们可以使用命令行轻松地检查Java版本。
我们可以使用以下任何命令来打印Java版本。
$java -version $java --version
java -version将打印版本到错误流并退出。
java --version
会将其版本打印到输出流并退出。
请注意,JDK或者JRE bin目录应位于PATH变量中,否则会因为"找不到Java命令"而收到错误消息。
我在MacBook上安装了Java 8,Java 9和Java 10,所以让我们看看运行Java version check命令的结果。
Java版本10输出
$java -version java version "10.0.1" 2016-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,因此从上面的输出中,我们可以推论Feature为10,Interim为0,Update为1,Patch为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" 2016-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 10的Java版本检查代码
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 -version命令的输出匹配。
Java 9的Java版本检查代码
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版本major,minor和security属性。
如果我们针对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 8或者以下版本的Java版本检查代码
对于Java 8或者更低版本,我们可以使用System属性获取Java版本详细信息。
System.out.println(System.getProperty("java.version")); System.out.println(System.getProperty("java.specification.version"));
输出:
1.8.0_131 1.8