From 0a115393d57c2b310526c39a8dab32b26f901dcb Mon Sep 17 00:00:00 2001 From: asukavuuyn <1346007099@qq.com> Date: Wed, 3 Sep 2025 01:30:00 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E6=96=B0=E5=A2=9Ewin11=E5=88=A4=E6=96=AD?= =?UTF-8?q?=20=E5=A2=9E=E5=BC=BAwin10=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cn/hutool/system/OsInfo.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/hutool-system/src/main/java/cn/hutool/system/OsInfo.java b/hutool-system/src/main/java/cn/hutool/system/OsInfo.java index 7d7337e47..69997f7f8 100755 --- a/hutool-system/src/main/java/cn/hutool/system/OsInfo.java +++ b/hutool-system/src/main/java/cn/hutool/system/OsInfo.java @@ -32,6 +32,7 @@ public class OsInfo implements Serializable{ private final boolean IS_OS_WINDOWS_8 = getOSMatches("Windows", "6.2"); private final boolean IS_OS_WINDOWS_8_1 = getOSMatches("Windows", "6.3"); private final boolean IS_OS_WINDOWS_10 = getOSMatches("Windows", "10.0"); + private final boolean IS_OS_WINDOWS_11 = getOSMatches("Windows 11"); // 由于改变file.encoding属性并不会改变系统字符编码,为了保持一致,通过LocaleUtil取系统默认编码。 private final String FILE_SEPARATOR = SystemUtil.get("file.separator", false); @@ -340,7 +341,20 @@ public class OsInfo implements Serializable{ * @return 如果当前OS类型为Windows 10,则返回{@code true} */ public final boolean isWindows10() { - return IS_OS_WINDOWS_10; + return IS_OS_WINDOWS_10 && !IS_OS_WINDOWS_11; + } + + /** + * 判断当前OS的类型。 + * + *

+ * 如果不能取得系统属性{@code os.name}(因为Java安全限制),则总是返回{@code false} + *

+ * + * @return 如果当前OS类型为Windows 11,则返回{@code true} + */ + public final boolean isWindows11() { + return IS_OS_WINDOWS_11; } /**