in src/main/cpp/launcher/windows/src/Launcher.c [946:1008]
void processLauncher(LauncherProperties * props) {
setOutput(props);
if(!isOK(props) || isTerminated(props)) return;
setProgressRange(props, props->launcherSize);
if(!isOK(props) || isTerminated(props)) return;
skipStub(props);
if(!isOK(props) || isTerminated(props)) return;
readDefaultRoots(props);
if(!isOK(props) || isTerminated(props)) return;
loadLocalizationStrings(props);
if(!isOK(props) || isTerminated(props)) return;
if(isOnlyHelp(props)) return;
setProgressTitleString(props, getI18nProperty(props, MSG_PROGRESS_TITLE));
setMainWindowTitle(props, getI18nProperty(props, MAIN_WINDOW_TITLE));
showLauncherWindows(props);
if(!isOK(props) || isTerminated(props)) return;
readLauncherProperties(props);
checkExtractionStatus(props);
if(!isOK(props) || isTerminated(props)) return;
if(props->bundledNumber > 0) {
createTMPDir(props);
if(isOK(props)) {
checkFreeSpace(props, props->tmpDir, props->bundledSize);
checkExtractionStatus(props);
}
}
if (isOK(props) ){
extractJVMData(props);
checkExtractionStatus(props);
if (isOK(props) && !props->extractOnly && !isTerminated(props)) {
findSuitableJava(props);
}
if (isOK(props) && !isTerminated(props)) {
extractData(props);
checkExtractionStatus(props);
if (isOK(props) && (props->java!=NULL) && !isTerminated(props)) {
setClasspathElements(props);
if(isOK(props) && (props->java!=NULL) && !isTerminated(props)) {
setAdditionalArguments(props);
setLauncherCommand(props);
Sleep(500);
executeMainClass(props);
}
}
}
}
if(!props->extractOnly && props->tmpDirCreated) {
writeMessageA(props, OUTPUT_LEVEL_DEBUG, 0, "... deleting temporary directory ", 1);
deleteDirectory(props, props->tmpDir);
}
}