summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--api/logic/java/JavaUtils.cpp33
-rw-r--r--application/pages/InstanceSettingsPage.ui4
-rw-r--r--application/pages/global/JavaPage.ui6
-rw-r--r--application/setupwizard/JavaWizardPage.cpp12
-rw-r--r--application/setupwizard/JavaWizardPage.h1
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();