mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
!646 简单pr: javainfo适配jdk18和以下
Merge pull request !646 from dazer007/v6-dev-javaInfo-jdk17
This commit is contained in:
commit
cd69a72cb6
@ -8,11 +8,12 @@ import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 代表Java Implementation的信息。
|
||||
* @see ManagementUtil#getJavaInfo() 使用方式
|
||||
*/
|
||||
public class JavaInfo implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private final String JAVA_VERSION = SystemUtil.get("java.version", false);
|
||||
private static final String JAVA_VERSION = SystemUtil.get("java.version", false);
|
||||
private final float JAVA_VERSION_FLOAT = getJavaVersionAsFloat();
|
||||
private final int JAVA_VERSION_INT = getJavaVersionAsInt();
|
||||
private final String JAVA_VENDOR = SystemUtil.get("java.vendor", false);
|
||||
@ -27,10 +28,16 @@ public class JavaInfo implements Serializable {
|
||||
private final boolean IS_JAVA_1_6 = getJavaVersionMatches("1.6");
|
||||
private final boolean IS_JAVA_1_7 = getJavaVersionMatches("1.7");
|
||||
private final boolean IS_JAVA_1_8 = getJavaVersionMatches("1.8");
|
||||
private final boolean IS_JAVA_9 = getJavaVersionMatches("9");
|
||||
private final boolean IS_JAVA_9 = getJavaVersionMatches("9");
|
||||
private final boolean IS_JAVA_10 = getJavaVersionMatches("10");
|
||||
private final boolean IS_JAVA_11 = getJavaVersionMatches("11");
|
||||
private final boolean IS_JAVA_12 = getJavaVersionMatches("12");
|
||||
private final boolean IS_JAVA_13 = getJavaVersionMatches("13");
|
||||
private final boolean IS_JAVA_14 = getJavaVersionMatches("14");
|
||||
private final boolean IS_JAVA_15 = getJavaVersionMatches("15");
|
||||
private final boolean IS_JAVA_16 = getJavaVersionMatches("16");
|
||||
private final boolean IS_JAVA_17 = getJavaVersionMatches("17");
|
||||
private final boolean IS_JAVA_18 = getJavaVersionMatches("18");
|
||||
|
||||
/**
|
||||
* 取得当前Java impl.的版本(取自系统属性:{@code java.version})。
|
||||
@ -81,6 +88,30 @@ public class JavaInfo implements Serializable {
|
||||
return JAVA_VERSION_INT;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回1位整型的java版本,(取自系统属性:{@code java.version})如:7、8、11、15、17、18,返回1位,java10及其之后的版本返回值为2位
|
||||
* <ul>
|
||||
* <li>JDK 1.7.0_80:{@code 7}</li>
|
||||
* <li>JDK 1.8.0_211:{@code 8}</li>
|
||||
* <li>JDK 11.0.2:{@code 11}</li>
|
||||
* <li>JDK 13.0.11:{@code 13}</li>
|
||||
* <li>JDK 15.0.7:{@code 15}</li>
|
||||
* <li>JDK 17.0.3:{@code 17}</li>
|
||||
* <li>JDK 18.0.1.1:{@code 18}</li>
|
||||
* </ul>
|
||||
* @since 6.0.1
|
||||
* @author dazer
|
||||
*/
|
||||
public final int getVersionIntSimple() {
|
||||
if (JAVA_VERSION == null) {
|
||||
return 0;
|
||||
}
|
||||
if (JAVA_VERSION.startsWith("1.")) {
|
||||
return Integer.parseInt(JAVA_VERSION.split("\\.")[1]);
|
||||
}
|
||||
return Integer.parseInt(JAVA_VERSION.split("\\.")[0]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 取得当前Java impl.的版本的{@code float}值。
|
||||
*
|
||||
@ -291,6 +322,36 @@ public class JavaInfo implements Serializable {
|
||||
return IS_JAVA_12;
|
||||
}
|
||||
|
||||
/**是否是当前java的版本。 @since 6.0.1 */
|
||||
public final boolean isJava13() {
|
||||
return IS_JAVA_13;
|
||||
}
|
||||
|
||||
/**是否是当前java的版本。 @since 6.0.1 */
|
||||
public final boolean isJava14() {
|
||||
return IS_JAVA_14;
|
||||
}
|
||||
|
||||
/**是否是当前java的版本。 @since 6.0.1 */
|
||||
public final boolean isJava15() {
|
||||
return IS_JAVA_15;
|
||||
}
|
||||
|
||||
/**是否是当前java的版本。 @since 6.0.1 */
|
||||
public final boolean isJava16() {
|
||||
return IS_JAVA_16;
|
||||
}
|
||||
|
||||
/**是否是当前java的版本。 @since 6.0.1 */
|
||||
public final boolean isJava17() {
|
||||
return IS_JAVA_17;
|
||||
}
|
||||
|
||||
/**是否是当前java的版本。 @since 6.0.1 */
|
||||
public final boolean isJava18() {
|
||||
return IS_JAVA_18;
|
||||
}
|
||||
|
||||
/**
|
||||
* 匹配当前Java的版本。
|
||||
*
|
||||
@ -358,5 +419,4 @@ public class JavaInfo implements Serializable {
|
||||
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,19 @@
|
||||
package cn.hutool.extra.management;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* @see JavaInfo
|
||||
*/
|
||||
public class JavaInfoTest {
|
||||
|
||||
@Test
|
||||
public void isJavaVersionAtLeastTest() {
|
||||
boolean javaVersionAtLeast1 = ManagementUtil.getJavaInfo().isJavaVersionAtLeast(1.8f);
|
||||
Assert.assertTrue(javaVersionAtLeast1);
|
||||
|
||||
boolean javaVersionAtLeast2 = ManagementUtil.getJavaInfo().isJavaVersionAtLeast(8f);
|
||||
Assert.assertTrue(javaVersionAtLeast2);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user