MCPcopy Create free account
hub / github.com/MultiMC/Launcher / executeTask

Method executeTask

launcher/launch/steps/CheckJava.cpp:23–79  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

21#include <sys.h>
22
23void CheckJava::executeTask()
24{
25 auto instance = m_parent->instance();
26 auto settings = instance->settings();
27 m_javaPath = FS::ResolveExecutable(settings->get("JavaPath").toString());
28 bool perInstance = settings->get("OverrideJava").toBool() || settings->get("OverrideJavaLocation").toBool();
29
30 auto realJavaPath = QStandardPaths::findExecutable(m_javaPath);
31 if (realJavaPath.isEmpty())
32 {
33 if (perInstance)
34 {
35 emit logLine(
36 QString("The java binary \"%1\" couldn't be found. Please fix the java path "
37 "override in the instance's settings or disable it.").arg(m_javaPath),
38 MessageLevel::Warning);
39 }
40 else
41 {
42 emit logLine(QString("The java binary \"%1\" couldn't be found. Please set up java in "
43 "the settings.").arg(m_javaPath),
44 MessageLevel::Warning);
45 }
46 emitFailed(QString("Java path is not valid."));
47 return;
48 }
49 else
50 {
51 emit logLine("Java path is:\n" + m_javaPath + "\n\n", MessageLevel::Launcher);
52 }
53
54 QFileInfo javaInfo(realJavaPath);
55 qlonglong javaUnixTime = javaInfo.lastModified().toMSecsSinceEpoch();
56 auto storedUnixTime = settings->get("JavaTimestamp").toLongLong();
57 auto storedArchitecture = settings->get("JavaArchitecture").toString();
58 auto storedVersion = settings->get("JavaVersion").toString();
59 auto storedVendor = settings->get("JavaVendor").toString();
60 m_javaUnixTime = javaUnixTime;
61 // if timestamps are not the same, or something is missing, check!
62 if (javaUnixTime != storedUnixTime || storedVersion.size() == 0 || storedArchitecture.size() == 0 || storedVendor.size() == 0)
63 {
64 m_JavaChecker = new JavaChecker();
65 emit logLine(QString("Checking Java version..."), MessageLevel::Launcher);
66 connect(m_JavaChecker.get(), &JavaChecker::checkFinished, this, &CheckJava::checkJavaFinished);
67 m_JavaChecker->m_path = realJavaPath;
68 m_JavaChecker->performCheck();
69 return;
70 }
71 else
72 {
73 auto verString = instance->settings()->get("JavaVersion").toString();
74 auto archString = instance->settings()->get("JavaArchitecture").toString();
75 auto vendorString = instance->settings()->get("JavaVendor").toString();
76 printJavaInfo(verString, archString, vendorString);
77 }
78 emitSucceeded();
79}
80

Callers

nothing calls this directly

Calls 9

ResolveExecutableFunction · 0.85
QStringClass · 0.85
isEmptyMethod · 0.80
performCheckMethod · 0.80
instanceMethod · 0.45
settingsMethod · 0.45
toStringMethod · 0.45
getMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected