in src/main/cpp/bootstrap/platformlauncher.cpp [137:167]
bool PlatformLauncher::run(bool updater, DWORD *retCode) {
logMsg(updater ? "Starting updater..." : "Starting application...");
constructClassPath(updater);
const char *mainClass;
if (updater) {
mainClass = UPDATER_MAIN_CLASS;
nextAction = ARG_NAME_LA_START_APP;
} else {
DeleteFile((userDir + RESTART_FILE_PATH).c_str());
mainClass = bootclass.empty() ? IDE_MAIN_CLASS : bootclass.c_str();
nextAction = ARG_NAME_LA_START_AU;
}
string option = OPT_NB_CLUSTERS;
option += auClusters.empty() ? clusters : auClusters;
javaOptions.push_back(option);
option = OPT_CLASS_PATH;
option += classPath;
javaOptions.push_back(option);
jvmLauncher.setSuppressConsole(suppressConsole);
bool rc = jvmLauncher.start(mainClass, progArgs, javaOptions, separateProcess, retCode);
if (!separateProcess) {
exit(0);
}
javaOptions.pop_back();
javaOptions.pop_back();
return rc;
}