如何在Java代码中获取JDK版本
我猜你指的只是Java的版本,如果是的话,请尝试以下代码:
String version = System.getProperty("java.version");
自Java 9以来
System.out.println(Runtime.version());
打印类似于17.0.2+8-86
的内容
或者如果需要更多
System.out.println("Java Feature Version = " + Runtime.version().feature());
System.out.println("Java Interim Version = " + Runtime.version().interim());
System.out.println("Java Update Version = " + Runtime.version().update());
System.out.println("Java Version Build = " + Runtime.version().build().map(String::valueOf).orElse("Unknown"));
System.out.println("Java Version Pre-Release Info = " + Runtime.version().pre().orElse("N/A"));
打印
Java Feature Version = 17
Java Interim Version = 0
Java Update Version = 2
Java Version Build = 8
Java Version Pre-Release Info = N/A
仅仅依靠java.version字符串来展示给人看以外的任何用途都是脆弱的,如果在另一个Java实现上运行,它将会出错。
唯一可靠的编程方式是使用反射仔细地询问给定设施是否可用,然后相应地选择适当的代码。
System.getProperty("sun.arch.data.model")
不能保证它适用于除HotSpot之外的其他Java实现。
Float.valueOf
。这对我失败了,因为由于舍入误差,1.8>=1.8
对我返回了false。请改用.compareTo("1.8")>=0
。 - Mark Jeronimus