FindJavaPaths: fix sdkman search, add asdf search (#4163)

This commit is contained in:
Alexandru Ionut Tripon 2025-09-22 00:01:31 +03:00 committed by GitHub
commit 9c9e0d2945
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -379,10 +379,19 @@ 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");
}
// 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) // java in user library folder (like from intellij downloads)
@ -468,7 +477,11 @@ 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 asdf
QString asdfDataDir = qEnvironmentVariable("ASDF_DATA_DIR", FS::PathCombine(home, ".asdf"));
scanJavaDirs(FS::PathCombine(asdfDataDir, "installs/java"));
// javas downloaded by gradle (toolchains) // javas downloaded by gradle (toolchains)
scanJavaDirs(FS::PathCombine(home, ".gradle/jdks")); scanJavaDirs(FS::PathCombine(home, ".gradle/jdks"));