char *sysGetInstallJREHome(void) { static char jreHome[MAXPATHLEN]; static int initialized = FALSE; char *ptr; if (!initialized) { strcpy(jreHome, sysGetApplicationHome()); ptr = strrchr(jreHome, FILE_SEPARATOR); strcpy(ptr, "\0"); } return jreHome; }
/* * If app is "c:\j2se1.4.2\javaws\javaws.exe", * then put "c:\j2se1.4.2\bin\javaw.exe" into buf. (if it exists) */ char* sysGetInstallJRE(void) { struct stat statBuf; static char jre[MAXPATHLEN]; char nativeStr[100]; static int initialized = FALSE; char *ptr; if (!initialized) { strcpy(jre, sysGetApplicationHome()); ptr = strrchr(jre, FILE_SEPARATOR); sprintf(nativeStr, "%s%c%s", "bin", FILE_SEPARATOR, "javaw.exe"); strcpy(ptr+1, nativeStr); } if (stat(jre, &statBuf) == 0) { return jre; } return NULL; }
static int ensureDeployDownloaded() { struct stat statBuf; int result = stat(GetDeployJarPath(), &statBuf) == 0; if (!result) { // deploy.jar does not exist, we need to download it char java[MAXPATHLEN]; char *appHome = sysGetApplicationHome(); char *argv[5]; int len = strlen(appHome); strcpy(java, appHome); java[len] = java[len - 4]; // copy the path separator preceding "bin" java[len + 1] = 0; strcat(java, "javaw"); argv[0] = "javaw"; argv[1] = "sun.jkernel.DownloadManager"; argv[2] = "-download"; argv[3] = "deploy"; argv[4] = NULL; sysExec(SYS_EXEC_WAIT, java, argv); result = stat(GetDeployJarPath(), &statBuf) == 0; } return result; }
static char* GetWebStartAppName(void) { static char apppath[MAXPATHLEN]; sprintf(apppath, "%s%cJava Web Start", sysGetApplicationHome(), FILE_SEPARATOR); return apppath; }