From 3329d94c9b83f15f33f22be298c356d69846ef41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mustafa=20=C3=87al=C4=B1=C5=9Fkan?= Date: Tue, 11 Jan 2022 18:20:55 +0300 Subject: [PATCH] Introduce POLYMC_JAVA_PATHS env --- launcher/java/JavaUtils.cpp | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/launcher/java/JavaUtils.cpp b/launcher/java/JavaUtils.cpp index b5b1fd08..6e5dfeae 100644 --- a/launcher/java/JavaUtils.cpp +++ b/launcher/java/JavaUtils.cpp @@ -149,6 +149,21 @@ JavaInstallPtr JavaUtils::GetDefaultJava() return javaVersion; } +QStringList addJavasFromEnv(QList javas) +{ + QByteArray env = qgetenv("POLYMC_JAVA_PATHS"); +#if defined(Q_OS_WIN32) + QList javaPaths = QString::fromLocal8Bit(env).split(QLatin1String(";")); +#else + QList javaPaths = QString::fromLocal8Bit(env).split(QLatin1String(":")); +#endif + for(QString i : javaPaths) + { + javas.append(i); + }; + return javas; +} + #if defined(Q_OS_WIN32) QList JavaUtils::FindJavaFromRegistryKey(DWORD keyType, QString keyName, QString keyJavaDir, QString subkeySuffix) { @@ -363,7 +378,7 @@ QList JavaUtils::FindJavaPaths() javas.append(systemLibraryJVMDir.absolutePath() + "/" + java + "/Contents/Home/bin/java"); javas.append(systemLibraryJVMDir.absolutePath() + "/" + java + "/Contents/Commands/java"); } - return javas; + return addJavasFromEnv(javas); } #elif defined(Q_OS_LINUX) @@ -409,7 +424,7 @@ QList JavaUtils::FindJavaPaths() scanJavaDir("/opt/jdks"); // flatpak scanJavaDir("/app/jdk"); - return javas; + return addJavasFromEnv(javas); } #else QList JavaUtils::FindJavaPaths() @@ -419,6 +434,6 @@ QList JavaUtils::FindJavaPaths() QList javas; javas.append(this->GetDefaultJava()->path); - return javas; + return addJavasFromEnv(javas); } #endif