diff options
author | swirl <roachh@protonmail.com> | 2022-01-11 14:44:21 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-11 14:44:21 -0500 |
commit | 3b524e99cceb734fa9f2433e3738ce0d185a75aa (patch) | |
tree | 8fdb5441da982fb9572c856e209cb86c510c5f8e | |
parent | 1d8196e11a3ff901d5e65d9f6dc4d2ea98df3cc8 (diff) | |
parent | 3329d94c9b83f15f33f22be298c356d69846ef41 (diff) | |
download | PrismLauncher-3b524e99cceb734fa9f2433e3738ce0d185a75aa.tar.gz PrismLauncher-3b524e99cceb734fa9f2433e3738ce0d185a75aa.tar.bz2 PrismLauncher-3b524e99cceb734fa9f2433e3738ce0d185a75aa.zip |
Merge pull request #46 from muscaln/java
-rw-r--r-- | launcher/java/JavaInstallList.cpp | 4 | ||||
-rw-r--r-- | launcher/java/JavaUtils.cpp | 21 |
2 files changed, 20 insertions, 5 deletions
diff --git a/launcher/java/JavaInstallList.cpp b/launcher/java/JavaInstallList.cpp index 07f2bd8c..a0a60871 100644 --- a/launcher/java/JavaInstallList.cpp +++ b/launcher/java/JavaInstallList.cpp @@ -120,8 +120,8 @@ void JavaInstallList::updateListData(QList<BaseVersionPtr> versions) bool sortJavas(BaseVersionPtr left, BaseVersionPtr right) { - auto rleft = std::dynamic_pointer_cast<JavaInstall>(left); - auto rright = std::dynamic_pointer_cast<JavaInstall>(right); + auto rleft = std::dynamic_pointer_cast<JavaInstall>(right); + auto rright = std::dynamic_pointer_cast<JavaInstall>(left); return (*rleft) > (*rright); } 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<QString> javas) +{ + QByteArray env = qgetenv("POLYMC_JAVA_PATHS"); +#if defined(Q_OS_WIN32) + QList<QString> javaPaths = QString::fromLocal8Bit(env).split(QLatin1String(";")); +#else + QList<QString> javaPaths = QString::fromLocal8Bit(env).split(QLatin1String(":")); +#endif + for(QString i : javaPaths) + { + javas.append(i); + }; + return javas; +} + #if defined(Q_OS_WIN32) QList<JavaInstallPtr> JavaUtils::FindJavaFromRegistryKey(DWORD keyType, QString keyName, QString keyJavaDir, QString subkeySuffix) { @@ -363,7 +378,7 @@ QList<QString> 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<QString> JavaUtils::FindJavaPaths() scanJavaDir("/opt/jdks"); // flatpak scanJavaDir("/app/jdk"); - return javas; + return addJavasFromEnv(javas); } #else QList<QString> JavaUtils::FindJavaPaths() @@ -419,6 +434,6 @@ QList<QString> JavaUtils::FindJavaPaths() QList<QString> javas; javas.append(this->GetDefaultJava()->path); - return javas; + return addJavasFromEnv(javas); } #endif |