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"));