检查 Java 版本是否大于 Java 中的某个迭代?

Check if a Java version is greater than a certain iteration in Java?

我想检查用户的 Java 版本是否至少为 1.8.0_171。我的意思是特定迭代或更高版本,例如 1.8.0_151,将不起作用。

本来打算用org.apache.commons.lang3.SystemUtils'isJavaVersionAtLeast(JavaVersion requiredVersion)的方法,但是好像不能指定迭代次数。

基于此和 Java 在 Java 中表示版本号的变化方式(例如 1.8 然后 9),检查 Java 版本的最佳方法是什么Java 程序中的用户?

编辑:

这被标记为 this question 的重复;但是,我认为它的不同之处在于它询问如何将 java 版本与特定版本进行比较,因为 java 版本的显示格式发生了变化。

即使版本控制发生了变化,我认为解决方案仍然与使用以下布尔表达式一样简单:

"1.8.0_171".compareTo(System.getProperty("java.version")) <= 0

如果用户的java.version属性小于1.8.0_171,则上述表达式returns为假,反之亦然。这也适用于使用 "9""10" 代替 java.version 属性。