From b328ed2cc9ca60a083c888a1539f4392969f9a31 Mon Sep 17 00:00:00 2001 From: Glavo Date: Tue, 16 Sep 2025 19:46:59 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20#4481:=20=E4=BF=AE=E5=A4=8D=20.hmcl=20?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E4=B8=BA=E8=B7=A8=E9=A9=B1=E5=8A=A8=E5=99=A8?= =?UTF-8?q?=E7=AC=A6=E5=8F=B7=E9=93=BE=E6=8E=A5=E6=97=B6=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E5=8D=B8=E8=BD=BD=20Java=20=E7=9A=84=E9=97=AE=E9=A2=98=20(#449?= =?UTF-8?q?2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jackhuang/hmcl/java/JavaManager.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/java/JavaManager.java b/HMCL/src/main/java/org/jackhuang/hmcl/java/JavaManager.java index 3bc9ab58c..215935258 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/java/JavaManager.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/java/JavaManager.java @@ -209,9 +209,18 @@ public final class JavaManager { public static Task getUninstallJavaTask(JavaRuntime java) { assert java.isManaged(); - Path root = REPOSITORY.getPlatformRoot(java.getPlatform()); - Path relativized = root.relativize(java.getBinary()); + Path platformRoot; + try { + platformRoot = REPOSITORY.getPlatformRoot(java.getPlatform()).toRealPath(); + } catch (Throwable ignored) { + return Task.completed(null); + } + + if (!java.getBinary().startsWith(platformRoot)) + return Task.completed(null); + + Path relativized = platformRoot.relativize(java.getBinary()); if (relativized.getNameCount() > 1) { FXUtils.runInFX(() -> { try {