2. "gij", because it is a completely free JVM,
3. "java", because it is a standard JVM,
4. "jre", comes last because it requires a CLASSPATH environment variable,
2. "gij", because it is a completely free JVM,
3. "java", because it is a standard JVM,
4. "jre", comes last because it requires a CLASSPATH environment variable,
- const char * const *classpaths,
- unsigned int classpaths_count,
- bool use_minimal_classpath,
- const char *exe_dir,
- const char * const *args,
- bool verbose, bool quiet,
- execute_fn *executer, void *private_data)
+ const char * const *classpaths,
+ unsigned int classpaths_count,
+ bool use_minimal_classpath,
+ const char *exe_dir,
+ const char * const *args,
+ bool verbose, bool quiet,
+ execute_fn *executer, void *private_data)
- /* Because $JAVA may consist of a command and options, we use the
- shell. Because $JAVA has been set by the user, we leave all
- all environment variables in place, including JAVA_HOME, and
- we don't erase the user's CLASSPATH. */
- char *old_classpath;
- unsigned int command_length;
- char *command;
- char *argv[4];
- const char * const *arg;
- char *p;
-
- /* Set CLASSPATH. */
- old_classpath =
- set_classpath (classpaths, classpaths_count, false,
- verbose);
-
- command_length = strlen (java);
- command_length += 1 + shell_quote_length (class_name);
- for (arg = args; *arg != NULL; arg++)
- command_length += 1 + shell_quote_length (*arg);
- command_length += 1;
-
- command = (char *) xallocsa (command_length);
- p = command;
- /* Don't shell_quote $JAVA, because it may consist of a command
- and options. */
- memcpy (p, java, strlen (java));
- p += strlen (java);
- *p++ = ' ';
- p = shell_quote_copy (p, class_name);
- for (arg = args; *arg != NULL; arg++)
- {
- *p++ = ' ';
- p = shell_quote_copy (p, *arg);
- }
- *p++ = '\0';
- /* Ensure command_length was correctly calculated. */
- if (p - command > command_length)
- abort ();
-
- if (verbose)
- printf ("%s\n", command);
-
- argv[0] = "/bin/sh";
- argv[1] = "-c";
- argv[2] = command;
- argv[3] = NULL;
- err = executer (java, "/bin/sh", argv, private_data);
-
- freesa (command);
-
- /* Reset CLASSPATH. */
- reset_classpath (old_classpath);
-
- goto done1;
+ /* Because $JAVA may consist of a command and options, we use the
+ shell. Because $JAVA has been set by the user, we leave all
+ all environment variables in place, including JAVA_HOME, and
+ we don't erase the user's CLASSPATH. */
+ char *old_classpath;
+ unsigned int command_length;
+ char *command;
+ char *argv[4];
+ const char * const *arg;
+ char *p;
+
+ /* Set CLASSPATH. */
+ old_classpath =
+ set_classpath (classpaths, classpaths_count, false,
+ verbose);
+
+ command_length = strlen (java);
+ command_length += 1 + shell_quote_length (class_name);
+ for (arg = args; *arg != NULL; arg++)
+ command_length += 1 + shell_quote_length (*arg);
+ command_length += 1;
+
+ command = (char *) xmalloca (command_length);
+ p = command;
+ /* Don't shell_quote $JAVA, because it may consist of a command
+ and options. */
+ memcpy (p, java, strlen (java));
+ p += strlen (java);
+ *p++ = ' ';
+ p = shell_quote_copy (p, class_name);
+ for (arg = args; *arg != NULL; arg++)
+ {
+ *p++ = ' ';
+ p = shell_quote_copy (p, *arg);
+ }
+ *p++ = '\0';
+ /* Ensure command_length was correctly calculated. */
+ if (p - command > command_length)
+ abort ();
+
+ if (verbose)
+ printf ("%s\n", command);
+
+ argv[0] = "/bin/sh";
+ argv[1] = "-c";
+ argv[2] = command;
+ argv[3] = NULL;
+ err = executer (java, "/bin/sh", argv, private_data);
+
+ freea (command);
+
+ /* Reset CLASSPATH. */
+ reset_classpath (old_classpath);
+
+ goto done1;
- /* Test for presence of gij: "gij --version > /dev/null" */
- char *argv[3];
- int exitstatus;
-
- argv[0] = "gij";
- argv[1] = "--version";
- argv[2] = NULL;
- exitstatus = execute ("gij", "gij", argv, false, false, true, true,
- true, false);
- gij_present = (exitstatus == 0);
- gij_tested = true;
+ /* Test for presence of gij: "gij --version > /dev/null" */
+ char *argv[3];
+ int exitstatus;
+
+ argv[0] = "gij";
+ argv[1] = "--version";
+ argv[2] = NULL;
+ exitstatus = execute ("gij", "gij", argv, false, false, true, true,
+ true, false, NULL);
+ gij_present = (exitstatus == 0);
+ gij_tested = true;
- /* Test for presence of java: "java -version 2> /dev/null" */
- char *argv[3];
- int exitstatus;
-
- argv[0] = "java";
- argv[1] = "-version";
- argv[2] = NULL;
- exitstatus = execute ("java", "java", argv, false, false, true, true,
- true, false);
- java_present = (exitstatus == 0);
- java_tested = true;
+ /* Test for presence of java: "java -version 2> /dev/null" */
+ char *argv[3];
+ int exitstatus;
+
+ argv[0] = "java";
+ argv[1] = "-version";
+ argv[2] = NULL;
+ exitstatus = execute ("java", "java", argv, false, false, true, true,
+ true, false, NULL);
+ java_present = (exitstatus == 0);
+ java_tested = true;
- /* Set CLASSPATH. We don't use the "-classpath ..." option because
- in JDK 1.1.x its argument should also contain the JDK's classes.zip,
- but we don't know its location. (In JDK 1.3.0 it would work.) */
- old_classpath =
- set_classpath (classpaths, classpaths_count, use_minimal_classpath,
- verbose);
+ /* Set CLASSPATH. We don't use the "-classpath ..." option because
+ in JDK 1.1.x its argument should also contain the JDK's classes.zip,
+ but we don't know its location. (In JDK 1.3.0 it would work.) */
+ old_classpath =
+ set_classpath (classpaths, classpaths_count, use_minimal_classpath,
+ verbose);
- /* Test for presence of jre: "jre 2> /dev/null ; test $? = 1" */
- char *argv[2];
- int exitstatus;
-
- argv[0] = "jre";
- argv[1] = NULL;
- exitstatus = execute ("jre", "jre", argv, false, false, true, true,
- true, false);
- jre_present = (exitstatus == 0 || exitstatus == 1);
- jre_tested = true;
+ /* Test for presence of jre: "jre 2> /dev/null ; test $? = 1" */
+ char *argv[2];
+ int exitstatus;
+
+ argv[0] = "jre";
+ argv[1] = NULL;
+ exitstatus = execute ("jre", "jre", argv, false, false, true, true,
+ true, false, NULL);
+ jre_present = (exitstatus == 0 || exitstatus == 1);
+ jre_tested = true;
- /* Set CLASSPATH. We don't use the "-classpath ..." option because
- in JDK 1.1.x its argument should also contain the JDK's classes.zip,
- but we don't know its location. */
- old_classpath =
- set_classpath (classpaths, classpaths_count, use_minimal_classpath,
- verbose);
+ /* Set CLASSPATH. We don't use the "-classpath ..." option because
+ in JDK 1.1.x its argument should also contain the JDK's classes.zip,
+ but we don't know its location. */
+ old_classpath =
+ set_classpath (classpaths, classpaths_count, use_minimal_classpath,
+ verbose);
- /* Test for presence of jview: "jview -? >nul ; test $? = 1" */
- char *argv[3];
- int exitstatus;
-
- argv[0] = "jview";
- argv[1] = "-?";
- argv[2] = NULL;
- exitstatus = execute ("jview", "jview", argv, false, false, true, true,
- true, false);
- jview_present = (exitstatus == 0 || exitstatus == 1);
- jview_tested = true;
+ /* Test for presence of jview: "jview -? >nul ; test $? = 1" */
+ char *argv[3];
+ int exitstatus;
+
+ argv[0] = "jview";
+ argv[1] = "-?";
+ argv[2] = NULL;
+ exitstatus = execute ("jview", "jview", argv, false, false, true, true,
+ true, false, NULL);
+ jview_present = (exitstatus == 0 || exitstatus == 1);
+ jview_tested = true;