From 02e6667761746d99e3c93c9d51feab556ffc2b07 Mon Sep 17 00:00:00 2001 From: McModder Date: Tue, 9 Jan 2024 17:26:51 +0300 Subject: [PATCH] Improve SDKMAN Java installations support; introduce ASDF Java installations auto-detection Signed-off-by: McModder --- launcher/java/JavaUtils.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/launcher/java/JavaUtils.cpp b/launcher/java/JavaUtils.cpp index 5005ed57..6696ab65 100644 --- a/launcher/java/JavaUtils.cpp +++ b/launcher/java/JavaUtils.cpp @@ -448,7 +448,16 @@ QList JavaUtils::FindJavaPaths() scanJavaDir("/opt/jdks"); // flatpak scanJavaDir("/app/jdk"); - scanJavaDir(FS::PathCombine(QDir::homePath(), ".sdkman/candidates/java")); + + // Default SDKMAN directory can be overwritten via SDKMAN_DIR env var (default $HOME/.sdkman) + // see https://sdkman.io/install + auto sdkmanInstallPath = qEnvironmentVariable("SDKMAN_DIR", FS::PathCombine(QDir::homePath(), ".sdkman")); + scanJavaDir(FS::PathCombine(sdkmanInstallPath, "candidates/java")); + // Default ASDF directory can be overwritten via ASDF_DIR or ASDF_DATA_DIR env vars (default $HOME/.asdf) + // see https://asdf-vm.com/manage/configuration.html#asdf-dir + auto asdfDataPath = qEnvironmentVariable("ASDF_DATA_DIR", qEnvironmentVariable("ASDF_DIR", FS::PathCombine(QDir::homePath(), ".asdf"))); + scanJavaDir(FS::PathCombine(asdfDataPath, "installs/java")); + return addJavasFromEnv(javas); } #else