fix(FindJavaPaths): use SDKMAN_DIR env var to find sdkman installations

Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
This commit is contained in:
Octol1ttle 2025-09-21 13:44:38 +05:00
parent 28b755cf04
commit 542ad146ad
No known key found for this signature in database
GPG Key ID: B77C34313AEE1FFF

View File

@ -379,10 +379,12 @@ QList<QString> JavaUtils::FindJavaPaths()
auto home = qEnvironmentVariable("HOME"); auto home = qEnvironmentVariable("HOME");
// javas downloaded by sdkman // javas downloaded by sdkman
QDir sdkmanDir(FS::PathCombine(home, ".sdkman/candidates/java")); QString sdkmanDir = qEnvironmentVariable("SDKMAN_DIR", FS::PathCombine(home, ".sdkman"));
QStringList sdkmanJavas = sdkmanDir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); QDir sdkmanJavaDir(FS::PathCombine(sdkmanDir, "candidates/java"));
QStringList sdkmanJavas = sdkmanJavaDir.entryList(QDir::Dirs | QDir::NoDotAndDotDot);
for (const QString& java : sdkmanJavas) { 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) // java in user library folder (like from intellij downloads)
@ -468,7 +470,8 @@ QList<QString> JavaUtils::FindJavaPaths()
// javas downloaded by IntelliJ // javas downloaded by IntelliJ
scanJavaDirs(FS::PathCombine(home, ".jdks")); scanJavaDirs(FS::PathCombine(home, ".jdks"));
// javas downloaded by sdkman // 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) // javas downloaded by gradle (toolchains)
scanJavaDirs(FS::PathCombine(home, ".gradle/jdks")); scanJavaDirs(FS::PathCombine(home, ".gradle/jdks"));