PROXY  WHOIS  RQUOTE  TEXTS  SOFT  FOREX  BBOARD
 Music  Philosophy  Code  Literature  Russian

= ROOT|Technical|Code_Examples|Java|launcher|java.c =

page 10 of 20



	     * Checking for headless toolkit option in the some way as AWT does:
	     * "true" means true and any other value means false
	     */
	    if (strcmp(arg, "-Djava.awt.headless=true") == 0) {
		headlessflag = 1;
	    } else if (strncmp(arg, "-Djava.awt.headless=", 20) == 0) {
		headlessflag = 0;
            } else if (strncmp(arg, "-splash:", 8) == 0) {
	        splash_file_name = arg+8;
	    } 
	    *new_argp++ = arg;
	}
	argc--;
	argv++;
    }
    if (argc <= 0) {	/* No operand? Possibly legit with -[full]version */
	operand = NULL;
    } else {
	argc--;
	*new_argp++ = operand = *argv++;
    }
    while (argc-- > 0)  /* Copy over [argument...] */
	*new_argp++ = *argv++;
    *new_argp = NULL;

    /*
     * If there is a jar file, read the manifest. If the jarfile can't be
     * read, the manifest can't be read from the jar file, or the manifest
     * is corrupt, issue the appropriate error messages and exit.
     *
     * Even if there isn't a jar file, construct a manifest_info structure
     * containing the command line information.  It's a convenient way to carry
     * this data around.
     */
    if (jarflag && operand) {
	if ((res = JLI_ParseManifest(operand, &info)) != 0) {
	    if (res == -1)
		ReportErrorMessage2("Unable to access jarfile %s",
		  operand, JNI_TRUE);
	    else
		ReportErrorMessage2("Invalid or corrupt jarfile %s",
		  operand, JNI_TRUE);
	    exit(1);
	}
        
	/*
	 * Command line splash screen option should have precedence
	 * over the manifest, so the manifest data is used only if 
	 * splash_file_name has not been initialized above during command
	 * line parsing
	 */
	if (!headlessflag && !splash_file_name && info.splashscreen_image_file_name) {
	    splash_file_name = info.splashscreen_image_file_name;
	    splash_jar_name = operand;
	}
    } else {
	info.manifest_version = NULL;
	info.main_class = NULL;
	info.jre_version = NULL;
	info.jre_restrict_search = 0;
    }
    
    /* 
     * Passing on splash screen info in environment variables
     */
    if (splash_file_name && !headlessflag) {
	char* splash_file_entry = JLI_MemAlloc(strlen(SPLASH_FILE_ENV_ENTRY "=")+strlen(splash_file_name)+1);
	strcpy(splash_file_entry, SPLASH_FILE_ENV_ENTRY "=");
	strcat(splash_file_entry, splash_file_name);
	putenv(splash_file_entry);
    }
    if (splash_jar_name && !headlessflag) {
	char* splash_jar_entry = JLI_MemAlloc(strlen(SPLASH_JAR_ENV_ENTRY "=")+strlen(splash_jar_name)+1);
	strcpy(splash_jar_entry, SPLASH_JAR_ENV_ENTRY "=");
	strcat(splash_jar_entry, splash_jar_name);
	putenv(splash_jar_entry);
    }

    /*
     * The JRE-Version and JRE-Restrict-Search values (if any) from the
     * manifest are overwritten by any specified on the command line.
     */
    if (version != NULL)
	info.jre_version = version;
    if (restrict_search != -1)
	info.jre_restrict_search = restrict_search;

    /*
     * "Valid" returns (other than unrecoverable errors) follow.  Set
     * main_class as a side-effect of this routine.
     */
    if (info.main_class != NULL)
	*main_class = JLI_StringDup(info.main_class);

    /*
     * If no version selection information is found either on the command
     * line or in the manifest, simply return.
     */
    if (info.jre_version == NULL) {
	JLI_FreeManifest();
=10=

1.4|5|6|7|8|9| < PREV = PAGE 10 = NEXT > |11|12|13|14|15|16.20

UP TO ROOT | UP TO DIR | TO FIRST PAGE

Google
 


E-mail Facebook Google Digg del.icio.us BlinkList Fark Furl Ma.gnolia Netscape NewsVine Reddit Slashdot Spurl StumbleUpon Technorati YahooMyWeb LiveJournal Blogmarks TwitThis Live News2.ru BobrDobr.ru Memori.ru MoeMesto.ru

0.011863 wallclock secs ( 0.00 usr + 0.00 sys = 0.00 CPU)