aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorswirl <roachh@protonmail.com>2022-01-11 14:44:21 -0500
committerGitHub <noreply@github.com>2022-01-11 14:44:21 -0500
commit3b524e99cceb734fa9f2433e3738ce0d185a75aa (patch)
tree8fdb5441da982fb9572c856e209cb86c510c5f8e
parent1d8196e11a3ff901d5e65d9f6dc4d2ea98df3cc8 (diff)
parent3329d94c9b83f15f33f22be298c356d69846ef41 (diff)
downloadPrismLauncher-3b524e99cceb734fa9f2433e3738ce0d185a75aa.tar.gz
PrismLauncher-3b524e99cceb734fa9f2433e3738ce0d185a75aa.tar.bz2
PrismLauncher-3b524e99cceb734fa9f2433e3738ce0d185a75aa.zip
Merge pull request #46 from muscaln/java
-rw-r--r--launcher/java/JavaInstallList.cpp4
-rw-r--r--launcher/java/JavaUtils.cpp21
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