From 542ad146ad1334d0c701ae3145eff4ec17985f9b Mon Sep 17 00:00:00 2001 From: Octol1ttle Date: Sun, 21 Sep 2025 13:44:38 +0500 Subject: [PATCH 1/2] fix(FindJavaPaths): use SDKMAN_DIR env var to find sdkman installations Signed-off-by: Octol1ttle --- launcher/java/JavaUtils.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/launcher/java/JavaUtils.cpp b/launcher/java/JavaUtils.cpp index 4f2ee3629..7d98c0fb4 100644 --- a/launcher/java/JavaUtils.cpp +++ b/launcher/java/JavaUtils.cpp @@ -379,10 +379,12 @@ QList JavaUtils::FindJavaPaths() auto home = qEnvironmentVariable("HOME"); // javas downloaded by sdkman - QDir sdkmanDir(FS::PathCombine(home, ".sdkman/candidates/java")); - QStringList sdkmanJavas = sdkmanDir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); + QString sdkmanDir = qEnvironmentVariable("SDKMAN_DIR", FS::PathCombine(home, ".sdkman")); + QDir sdkmanJavaDir(FS::PathCombine(sdkmanDir, "candidates/java")); + QStringList sdkmanJavas = sdkmanJavaDir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); for (const QString& java : sdkmanJavas) { - javas.append(sdkmanDir.absolutePath() + "/" + java + "/bin/java"); + javas.append(sdkmanJavaDir.absolutePath() + "/" + java + "/bin/java"); + } } // java in user library folder (like from intellij downloads) @@ -468,7 +470,8 @@ QList JavaUtils::FindJavaPaths() // javas downloaded by IntelliJ scanJavaDirs(FS::PathCombine(home, ".jdks")); // javas downloaded by sdkman - scanJavaDirs(FS::PathCombine(home, ".sdkman/candidates/java")); + QString sdkmanDir = qEnvironmentVariable("SDKMAN_DIR", FS::PathCombine(home, ".sdkman")); + scanJavaDirs(FS::PathCombine(sdkmanDir, "candidates/java")); // javas downloaded by gradle (toolchains) scanJavaDirs(FS::PathCombine(home, ".gradle/jdks")); From b605685187c222fa5a6b4b318ac59e38b90a96bc Mon Sep 17 00:00:00 2001 From: Octol1ttle Date: Sun, 21 Sep 2025 13:45:35 +0500 Subject: [PATCH 2/2] feat(FindJavaPaths): also use asdf to find Java Signed-off-by: Octol1ttle --- launcher/java/JavaUtils.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/launcher/java/JavaUtils.cpp b/launcher/java/JavaUtils.cpp index 7d98c0fb4..4f7a0ae3f 100644 --- a/launcher/java/JavaUtils.cpp +++ b/launcher/java/JavaUtils.cpp @@ -385,6 +385,13 @@ QList JavaUtils::FindJavaPaths() for (const QString& java : sdkmanJavas) { javas.append(sdkmanJavaDir.absolutePath() + "/" + java + "/bin/java"); } + + // javas downloaded by asdf + QString asdfDataDir = qEnvironmentVariable("ASDF_DATA_DIR", FS::PathCombine(home, ".asdf")); + QDir asdfJavaDir(FS::PathCombine(asdfDataDir, "installs/java")); + QStringList asdfJavas = asdfJavaDir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); + for (const QString& java : asdfJavas) { + javas.append(asdfJavaDir.absolutePath() + "/" + java + "/bin/java"); } // java in user library folder (like from intellij downloads) @@ -472,6 +479,9 @@ QList JavaUtils::FindJavaPaths() // javas downloaded by sdkman QString sdkmanDir = qEnvironmentVariable("SDKMAN_DIR", FS::PathCombine(home, ".sdkman")); scanJavaDirs(FS::PathCombine(sdkmanDir, "candidates/java")); + // javas downloaded by asdf + QString asdfDataDir = qEnvironmentVariable("ASDF_DATA_DIR", FS::PathCombine(home, ".asdf")); + scanJavaDirs(FS::PathCombine(asdfDataDir, "installs/java")); // javas downloaded by gradle (toolchains) scanJavaDirs(FS::PathCombine(home, ".gradle/jdks"));