MCPcopy Create free account
hub / github.com/PolyMC/PolyMC / executeTask

Method executeTask

launcher/launch/steps/CheckJava.cpp:44–112  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

42#include <sys.h>
43
44void CheckJava::executeTask()
45{
46 auto instance = m_parent->instance();
47 auto settings = instance->settings();
48 m_javaPath = FS::ResolveExecutable(settings->get("JavaPath").toString());
49 bool perInstance = settings->get("OverrideJava").toBool() || settings->get("OverrideJavaLocation").toBool();
50
51 auto realJavaPath = QStandardPaths::findExecutable(m_javaPath);
52 if (realJavaPath.isEmpty())
53 {
54 if (perInstance)
55 {
56 emit logLine(
57 QString("The java binary \"%1\" couldn't be found. Please fix the java path "
58 "override in the instance's settings or disable it.").arg(m_javaPath),
59 MessageLevel::Warning);
60 }
61 else
62 {
63 emit logLine(QString("The java binary \"%1\" couldn't be found. Please set up java in "
64 "the settings.").arg(m_javaPath),
65 MessageLevel::Warning);
66 }
67 emitFailed(QString("Java path is not valid."));
68 return;
69 }
70 else
71 {
72 emit logLine("Java path is:\n" + m_javaPath + "\n\n", MessageLevel::Launcher);
73 }
74
75 if (JavaUtils::getJavaCheckPath().isEmpty())
76 {
77 const char *reason = QT_TR_NOOP("Java checker library could not be found. Please check your installation.");
78 emit logLine(tr(reason), MessageLevel::Fatal);
79 emitFailed(tr(reason));
80 return;
81 }
82
83 QFileInfo javaInfo(realJavaPath);
84 qlonglong javaUnixTime = javaInfo.lastModified().toMSecsSinceEpoch();
85 auto storedUnixTime = settings->get("JavaTimestamp").toLongLong();
86 auto storedArchitecture = settings->get("JavaArchitecture").toString();
87 auto storedRealArchitecture = settings->get("JavaRealArchitecture").toString();
88 auto storedVersion = settings->get("JavaVersion").toString();
89 auto storedVendor = settings->get("JavaVendor").toString();
90 m_javaUnixTime = javaUnixTime;
91 // if timestamps are not the same, or something is missing, check!
92 if (javaUnixTime != storedUnixTime || storedVersion.size() == 0
93 || storedArchitecture.size() == 0 || storedRealArchitecture.size() == 0
94 || storedVendor.size() == 0)
95 {
96 m_JavaChecker = new JavaChecker();
97 emit logLine(QString("Checking Java version..."), MessageLevel::Launcher);
98 connect(m_JavaChecker.get(), &JavaChecker::checkFinished, this, &CheckJava::checkJavaFinished);
99 m_JavaChecker->m_path = realJavaPath;
100 m_JavaChecker->performCheck();
101 return;

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