summaryrefslogtreecommitdiffstats
path: root/logic/MinecraftProcess.cpp
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2014-07-23 00:12:18 +0200
committerPetr Mrázek <peterix@gmail.com>2014-07-23 00:16:31 +0200
commit75cb329f17884e01edbd539f0532d3a5db10524a (patch)
treef72cb08f99a87920a5a29d0b7f0fcc0f02dbd42b /logic/MinecraftProcess.cpp
parentbef869ff76ec7302423f5a77a4f3cb0897eeda68 (diff)
downloadMultiMC-75cb329f17884e01edbd539f0532d3a5db10524a.tar
MultiMC-75cb329f17884e01edbd539f0532d3a5db10524a.tar.gz
MultiMC-75cb329f17884e01edbd539f0532d3a5db10524a.tar.lz
MultiMC-75cb329f17884e01edbd539f0532d3a5db10524a.tar.xz
MultiMC-75cb329f17884e01edbd539f0532d3a5db10524a.zip
Check if the java binary can be found before launch.
Fix #386
Diffstat (limited to 'logic/MinecraftProcess.cpp')
-rw-r--r--logic/MinecraftProcess.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/logic/MinecraftProcess.cpp b/logic/MinecraftProcess.cpp
index dfa1dee7..1a7dc2fe 100644
--- a/logic/MinecraftProcess.cpp
+++ b/logic/MinecraftProcess.cpp
@@ -24,6 +24,7 @@
#include <QDir>
#include <QProcessEnvironment>
#include <QRegularExpression>
+#include <QStandardPaths>
#include "BaseInstance.h"
@@ -71,7 +72,7 @@ MinecraftProcess::MinecraftProcess(InstancePtr inst) : m_instance(inst)
connect(&m_prepostlaunchprocess, &QProcess::readyReadStandardOutput, this,
&MinecraftProcess::on_prepost_stdOut);
}
-
+
// a process has been constructed for the instance. It is running from MultiMC POV
m_instance->setRunning(true);
}
@@ -363,7 +364,7 @@ bool MinecraftProcess::postLaunch()
bool MinecraftProcess::waitForPrePost()
{
- if(!m_prepostlaunchprocess.waitForStarted())
+ if (!m_prepostlaunchprocess.waitForStarted())
return false;
QEventLoop eventLoop;
auto finisher = [this, &eventLoop](QProcess::ProcessState state)
@@ -428,7 +429,7 @@ QStringList MinecraftProcess::javaArguments() const
args << QString("-Xms%1m").arg(m_instance->settings().get("MinMemAlloc").toInt());
args << QString("-Xmx%1m").arg(m_instance->settings().get("MaxMemAlloc").toInt());
auto permgen = m_instance->settings().get("PermGen").toInt();
- if(permgen != 64)
+ if (permgen != 64)
{
args << QString("-XX:PermSize=%1m").arg(permgen);
}
@@ -460,6 +461,14 @@ void MinecraftProcess::arm()
QString allArgs = args.join(", ");
emit log("Java Arguments:\n[" + censorPrivateInfo(allArgs) + "]\n\n");
+ auto realJavaPath = QStandardPaths::findExecutable(JavaPath);
+ if (realJavaPath.isEmpty())
+ {
+ emit log(tr("The java binary \"%1\" couldn't be found. You may have to set up java "
+ "if Minecraft fails to launch.").arg(JavaPath),
+ MessageLevel::Warning);
+ }
+
// instantiate the launcher part
start(JavaPath, args);
if (!waitForStarted())