feat: auto-detect portable JDK in launcher/java/jdk-*/bin/java
This commit is contained in:
parent
6331f9f17a
commit
7fa086af1f
1 changed files with 20 additions and 0 deletions
|
|
@ -754,6 +754,26 @@ Application::Application(int& argc, char** argv) : QApplication(argc, argv)
|
|||
m_settings->registerSetting("AutomaticJavaDownload", defaultEnableAutoJava);
|
||||
m_settings->registerSetting("UserAskedAboutAutomaticJavaDownload", false);
|
||||
|
||||
// Auto-detect portable JDK in <launcher_root>/java/jdk-*/bin/java(.exe)
|
||||
if (m_settings->get("JavaPath").toString().isEmpty()) {
|
||||
QDir javaDir(FS::PathCombine(m_rootPath, m_settings->get("JavaDir").toString()));
|
||||
if (javaDir.exists()) {
|
||||
const QStringList jdks = javaDir.entryList({ "jdk-*", "jre-*" }, QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name | QDir::Reversed);
|
||||
for (const QString& jdk : jdks) {
|
||||
#ifdef Q_OS_WIN
|
||||
QString candidate = FS::PathCombine(javaDir.absoluteFilePath(jdk), "bin", "java.exe");
|
||||
#else
|
||||
QString candidate = FS::PathCombine(javaDir.absoluteFilePath(jdk), "bin", "java");
|
||||
#endif
|
||||
if (QFileInfo(candidate).isExecutable()) {
|
||||
qDebug() << "Auto-detected portable JDK:" << candidate;
|
||||
m_settings->set("JavaPath", candidate);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Legacy settings
|
||||
m_settings->registerSetting("OnlineFixes", false);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue