in src/main/cpp/launcher/windows/src/JavaUtils.c [201:280]
DWORD getJavaPropertiesFromOutput(LauncherProperties * props, char *str, JavaProperties ** javaProps) {
DWORD separators = getLineSeparatorNumber(str);
DWORD result = ERROR_INPUTOUPUT;
* javaProps = NULL;
if(separators == TEST_JAVA_PARAMETERS) {
char * start;
char * end;
char * javaVersion;
char * javaVmVersion;
char * javaVendor;
char * osName;
char * osArch;
char * string;
JavaVersion * vers;
start = str;
end = searchA(start, "\n");
javaVersion = appendStringN(NULL, 0, start, getLengthA(start) - getLengthA(end)-1);
writeMessageA(props, OUTPUT_LEVEL_DEBUG, 0, " java.version = ", 0);
writeMessageA(props, OUTPUT_LEVEL_DEBUG, 0, javaVersion, 1);
start = end + 1;
end = searchA(start, "\n");
javaVmVersion = appendStringN(NULL, 0, start, getLengthA(start) - getLengthA(end)-1);
writeMessageA(props, OUTPUT_LEVEL_DEBUG, 0, " java.vm.version = ", 0);
writeMessageA(props, OUTPUT_LEVEL_DEBUG, 0, javaVmVersion, 1);
start = end + 1;
end = searchA(start, "\n");
javaVendor = appendStringN(NULL, 0, start, getLengthA(start) - getLengthA(end)-1);
writeMessageA(props, OUTPUT_LEVEL_DEBUG, 0, " java.vendor = ", 0);
writeMessageA(props, OUTPUT_LEVEL_DEBUG, 0, javaVendor, 1);
start = end + 1;
end = searchA(start, "\n");
osName = appendStringN(NULL, 0, start, getLengthA(start) - getLengthA(end)-1);
writeMessageA(props, OUTPUT_LEVEL_DEBUG, 0, " os.name = ", 0);
writeMessageA(props, OUTPUT_LEVEL_DEBUG, 0, osName, 1);
start = end + 1;
end = searchA(start, "\n");
osArch = appendStringN(NULL, 0, start, getLengthA(start) - getLengthA(end)-1);
writeMessageA(props, OUTPUT_LEVEL_DEBUG, 0, " os.arch = ", 0);
writeMessageA(props, OUTPUT_LEVEL_DEBUG, 0, osArch, 2);
string = javaVersion;
if(javaVmVersion!=NULL) {
string = searchA(javaVmVersion, javaVersion);
if(string==NULL) {
string = javaVersion;
}
}
writeMessageA(props, OUTPUT_LEVEL_DEBUG, 0, "... getting java version from string : ", 0);
writeMessageA(props, OUTPUT_LEVEL_DEBUG, 0, string, 1);
vers = getJavaVersionFromString(string, & result);
if(javaProps != NULL) {
writeMessageA(props, OUTPUT_LEVEL_DEBUG, 0, "... some java there", 1);
* javaProps = (JavaProperties *) LocalAlloc(LPTR, sizeof(JavaProperties));
(*javaProps)->version = vers;
(*javaProps)->vendor = javaVendor;
(*javaProps)->osName = osName;
(*javaProps)->osArch = osArch;
(*javaProps)->javaHome = NULL;
(*javaProps)->javaExe = NULL;
} else {
writeMessageA(props, OUTPUT_LEVEL_DEBUG, 0, "... no java there", 1);
FREE(javaVendor);
FREE(osName);
FREE(osArch);
}
FREE(javaVmVersion);
FREE(javaVersion);
}
return result;
}