diff options
-rw-r--r-- | api/logic/java/JavaUtils.cpp | 33 | ||||
-rw-r--r-- | application/pages/InstanceSettingsPage.ui | 4 | ||||
-rw-r--r-- | application/pages/global/JavaPage.ui | 6 | ||||
-rw-r--r-- | application/setupwizard/JavaWizardPage.cpp | 12 | ||||
-rw-r--r-- | application/setupwizard/JavaWizardPage.h | 1 |
5 files changed, 45 insertions, 11 deletions
diff --git a/api/logic/java/JavaUtils.cpp b/api/logic/java/JavaUtils.cpp index 79932eda..8851e889 100644 --- a/api/logic/java/JavaUtils.cpp +++ b/api/logic/java/JavaUtils.cpp @@ -154,10 +154,12 @@ QList<QString> JavaUtils::FindJavaPaths() KEY_WOW64_32KEY, "SOFTWARE\\JavaSoft\\Java Development Kit"); java_candidates.append(JRE64s); + java_candidates.append(MakeJavaPtr("C:/Program Files/Java/jre8/bin/javaw.exe")); java_candidates.append(MakeJavaPtr("C:/Program Files/Java/jre7/bin/javaw.exe")); java_candidates.append(MakeJavaPtr("C:/Program Files/Java/jre6/bin/javaw.exe")); java_candidates.append(JDK64s); java_candidates.append(JRE32s); + java_candidates.append(MakeJavaPtr("C:/Program Files (x86)/Java/jre8/bin/javaw.exe")); java_candidates.append(MakeJavaPtr("C:/Program Files (x86)/Java/jre7/bin/javaw.exe")); java_candidates.append(MakeJavaPtr("C:/Program Files (x86)/Java/jre6/bin/javaw.exe")); java_candidates.append(JDK32s); @@ -205,9 +207,36 @@ QList<QString> JavaUtils::FindJavaPaths() QList<QString> javas; javas.append(this->GetDefaultJava()->path); - javas.append("/opt/java/bin/java"); - javas.append("/usr/bin/java"); + auto scanJavaDir = [&](const QString & dirPath) + { + QDir dir(dirPath); + if(!dir.exists()) + return; + auto entries = dir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot | QDir::NoSymLinks); + for(auto & entry: entries) + { + + QString prefix; + if(entry.isAbsolute()) + { + prefix = entry.absoluteFilePath(); + } + else + { + prefix = entry.filePath(); + } + javas.append(FS::PathCombine(prefix, "jre/bin/java")); + javas.append(FS::PathCombine(prefix, "bin/java")); + } + }; + // oracle RPMs + scanJavaDir("/usr/java"); + // general locations used by distro packaging + scanJavaDir("/usr/lib/jvm"); + scanJavaDir("/usr/lib32/jvm"); + // javas stored in MultiMC's folder + scanJavaDir("java"); return javas; } #else diff --git a/application/pages/InstanceSettingsPage.ui b/application/pages/InstanceSettingsPage.ui index d1ad0c60..4a17aa78 100644 --- a/application/pages/InstanceSettingsPage.ui +++ b/application/pages/InstanceSettingsPage.ui @@ -109,7 +109,7 @@ <string notr="true"> MB</string> </property> <property name="minimum"> - <number>512</number> + <number>128</number> </property> <property name="maximum"> <number>65536</number> @@ -131,7 +131,7 @@ <string notr="true"> MB</string> </property> <property name="minimum"> - <number>256</number> + <number>128</number> </property> <property name="maximum"> <number>65536</number> diff --git a/application/pages/global/JavaPage.ui b/application/pages/global/JavaPage.ui index 9a3bee2f..ba873d34 100644 --- a/application/pages/global/JavaPage.ui +++ b/application/pages/global/JavaPage.ui @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>545</width> - <height>559</height> + <height>760</height> </rect> </property> <property name="sizePolicy"> @@ -54,7 +54,7 @@ <string notr="true"> MB</string> </property> <property name="minimum"> - <number>512</number> + <number>128</number> </property> <property name="maximum"> <number>65536</number> @@ -90,7 +90,7 @@ <string notr="true"> MB</string> </property> <property name="minimum"> - <number>256</number> + <number>128</number> </property> <property name="maximum"> <number>65536</number> diff --git a/application/setupwizard/JavaWizardPage.cpp b/application/setupwizard/JavaWizardPage.cpp index a56fdffc..f2b5dd92 100644 --- a/application/setupwizard/JavaWizardPage.cpp +++ b/application/setupwizard/JavaWizardPage.cpp @@ -85,7 +85,7 @@ void JavaWizardPage::setupUi() m_minMemSpinBox = new QSpinBox(m_memoryGroupBox); m_minMemSpinBox->setObjectName(QStringLiteral("minMemSpinBox")); m_minMemSpinBox->setSuffix(QStringLiteral(" MB")); - m_minMemSpinBox->setMinimum(256); + m_minMemSpinBox->setMinimum(128); m_minMemSpinBox->setMaximum(m_availableMemory); m_minMemSpinBox->setSingleStep(128); m_labelMinMem->setBuddy(m_minMemSpinBox); @@ -98,7 +98,7 @@ void JavaWizardPage::setupUi() m_maxMemSpinBox = new QSpinBox(m_memoryGroupBox); m_maxMemSpinBox->setObjectName(QStringLiteral("maxMemSpinBox")); m_maxMemSpinBox->setSuffix(QStringLiteral(" MB")); - m_maxMemSpinBox->setMinimum(512); + m_maxMemSpinBox->setMinimum(128); m_maxMemSpinBox->setMaximum(m_availableMemory); m_maxMemSpinBox->setSingleStep(128); m_labelMaxMem->setBuddy(m_maxMemSpinBox); @@ -254,7 +254,7 @@ void JavaWizardPage::memoryValueChanged(int) } if(actuallyChanged) { - checkJavaPath(m_javaPathTextBox->text()); + checkJavaPathOnEdit(m_javaPathTextBox->text()); } } @@ -363,7 +363,11 @@ void JavaWizardPage::setJavaStatus(JavaWizardPage::JavaStatus status) void JavaWizardPage::javaPathEdited(const QString& path) { - // only autocheck + checkJavaPathOnEdit(path); +} + +void JavaWizardPage::checkJavaPathOnEdit(const QString& path) +{ auto realPath = FS::ResolveExecutable(path); QFileInfo pathInfo(realPath); if (pathInfo.baseName().toLower().contains("java")) diff --git a/application/setupwizard/JavaWizardPage.h b/application/setupwizard/JavaWizardPage.h index 56a40453..7b0d8830 100644 --- a/application/setupwizard/JavaWizardPage.h +++ b/application/setupwizard/JavaWizardPage.h @@ -52,6 +52,7 @@ protected slots: void checkFinished(JavaCheckResult result); protected: /* methods */ + void checkJavaPathOnEdit(const QString &path); void checkJavaPath(const QString &path); void setJavaStatus(JavaStatus status); void setupUi(); |