From 77bbee02f9150e87aade0ccc1c61763d4015f6d3 Mon Sep 17 00:00:00 2001 From: Glavo Date: Thu, 20 Mar 2025 16:59:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=88=E9=99=A4=20JEP=20498=20=E5=BC=95?= =?UTF-8?q?=E5=85=A5=E7=9A=84=E5=BC=83=E7=94=A8=E8=AD=A6=E5=91=8A=20(#3750?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 消除 JEP 498 引入的弃用警告 * Fix checkstyle --- HMCL/src/main/java/org/jackhuang/hmcl/Main.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/Main.java b/HMCL/src/main/java/org/jackhuang/hmcl/Main.java index c1d9c0ad8..e9e394ce9 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/Main.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/Main.java @@ -32,6 +32,7 @@ import javax.net.ssl.TrustManagerFactory; import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.lang.reflect.Method; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -71,6 +72,7 @@ public final class Main { checkJavaFX(); verifyJavaFX(); addEnableNativeAccess(); + enableUnsafeMemoryAccess(); Launcher.main(args); } @@ -134,6 +136,20 @@ public final class Main { } } + private static void enableUnsafeMemoryAccess() { + // https://openjdk.org/jeps/498 + if (JavaRuntime.CURRENT_VERSION == 24 || JavaRuntime.CURRENT_VERSION == 25) { + try { + Class clazz = Class.forName("sun.misc.Unsafe"); + Method trySetMemoryAccessWarned = clazz.getDeclaredMethod("trySetMemoryAccessWarned"); + trySetMemoryAccessWarned.setAccessible(true); + trySetMemoryAccessWarned.invoke(null); + } catch (Throwable e) { + e.printStackTrace(System.err); + } + } + } + /** * Indicates that a fatal error has occurred, and that the application cannot start. */