in src/main/cpp/bootstrap/platformlauncher.cpp [81:135]
bool PlatformLauncher::start(char* argv[], int argc, DWORD *retCode) {
if (!checkLoggingArg(argc, argv, false) || !initPlatformDir() || !parseArgs(argc, argv)) {
return false;
}
disableFolderVirtualization(GetCurrentProcess());
if (jdkhome.empty()) {
if (!jvmLauncher.initialize(REQ_JAVA_VERSION)) {
logErr(false, true, "Cannot find Java %s or higher.", REQ_JAVA_VERSION);
return false;
}
}
jvmLauncher.getJavaPath(jdkhome);
deleteNewClustersFile();
prepareOptions();
if (nextAction.empty()) {
if (shouldAutoUpdateClusters(true)) {
// run updater
if (!run(true, retCode)) {
return false;
}
}
while (true) {
// run app
if (!run(false, retCode)) {
return false;
}
if (shouldAutoUpdateClusters(false)) {
// run updater
if (!run(true, retCode)) {
return false;
}
} else if (!restartRequested()) {
break;
}
}
} else {
if (nextAction == ARG_NAME_LA_START_APP) {
return run(false, retCode);
} else if (nextAction == ARG_NAME_LA_START_AU) {
if (shouldAutoUpdateClusters(false)) {
return run(true, retCode);
}
} else {
logErr(false, true, "We should not get here.");
return false;
}
}
return true;
}