mirror of
https://github.com/PrismLauncher/PrismLauncher.git
synced 2025-06-13 05:37:42 +02:00
Added management for downloaded javas from prism
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
This commit is contained in:
@ -338,6 +338,7 @@ QList<QString> JavaUtils::FindJavaPaths()
|
||||
|
||||
candidates.append(getMinecraftJavaBundle());
|
||||
candidates.append(getPrismJavaBundle());
|
||||
candidates.append(getPrismExtraJavaPaths());
|
||||
candidates = addJavasFromEnv(candidates);
|
||||
candidates.removeDuplicates();
|
||||
return candidates;
|
||||
@ -365,6 +366,7 @@ QList<QString> JavaUtils::FindJavaPaths()
|
||||
}
|
||||
javas.append(getMinecraftJavaBundle());
|
||||
javas.append(getPrismJavaBundle());
|
||||
javas.append(getPrismExtraJavaPaths());
|
||||
javas = addJavasFromEnv(javas);
|
||||
javas.removeDuplicates();
|
||||
return javas;
|
||||
@ -418,6 +420,7 @@ QList<QString> JavaUtils::FindJavaPaths()
|
||||
|
||||
javas.append(getMinecraftJavaBundle());
|
||||
javas.append(getPrismJavaBundle());
|
||||
javas.append(getPrismExtraJavaPaths());
|
||||
javas = addJavasFromEnv(javas);
|
||||
javas.removeDuplicates();
|
||||
return javas;
|
||||
@ -432,6 +435,7 @@ QList<QString> JavaUtils::FindJavaPaths()
|
||||
|
||||
javas.append(getMinecraftJavaBundle());
|
||||
javas.append(getPrismJavaBundle());
|
||||
javas.append(getPrismExtraJavaPaths());
|
||||
javas.removeDuplicates();
|
||||
return addJavasFromEnv(javas);
|
||||
}
|
||||
@ -515,6 +519,33 @@ QStringList getPrismJavaBundle()
|
||||
|
||||
scanJavaDir(APPLICATION->javaPath());
|
||||
|
||||
return javas;
|
||||
}
|
||||
|
||||
QStringList getPrismExtraJavaPaths()
|
||||
{
|
||||
QList<QString> javas;
|
||||
|
||||
QString executable = "java";
|
||||
#if defined(Q_OS_WIN32)
|
||||
executable += "w.exe";
|
||||
#endif
|
||||
|
||||
auto scanDir = [&](QString prefix) {
|
||||
javas.append(FS::PathCombine(prefix, "jre", "bin", executable));
|
||||
javas.append(FS::PathCombine(prefix, "bin", executable));
|
||||
javas.append(FS::PathCombine(prefix, executable));
|
||||
};
|
||||
auto scanJavaDir = [&](const QString& dirPath) {
|
||||
QDir dir(dirPath);
|
||||
if (!dir.exists())
|
||||
return;
|
||||
auto entries = dir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot);
|
||||
for (auto& entry : entries) {
|
||||
scanDir(entry.canonicalFilePath());
|
||||
}
|
||||
};
|
||||
|
||||
auto extra_paths = APPLICATION->settings()->get("JavaExtraSearchPaths").toStringList();
|
||||
for (auto& entry : extra_paths) {
|
||||
scanDir(entry);
|
||||
|
Reference in New Issue
Block a user