src/share/classes/sun/launcher/LauncherHelper.java

Print this page

        

*** 399,408 **** --- 399,416 ---- jarFile.close(); } } } + + // From src/share/bin/java.c: + // enum LaunchMode { LM_UNKNOWN = 0, LM_CLASS, LM_JAR }; + + private static final int LM_UNKNOWN = 0; + private static final int LM_CLASS = 1; + private static final int LM_JAR = 2; + /** * This method does the following: * 1. gets the classname from a Jar's manifest, if necessary * 2. loads the class using the System ClassLoader * 3. ensures the availability and accessibility of the main method,
*** 418,445 **** * @param isJar * @param name * @return * @throws java.io.IOException */ ! public static Object checkAndLoadMain(boolean printToStderr, ! boolean isJar, String name) throws IOException { // get the class name ! String classname = (isJar) ? getMainClassFromJar(name) : name; ! classname = classname.replace('/', '.'); ! ClassLoader loader = ClassLoader.getSystemClassLoader(); ! Class<?> clazz = null; PrintStream ostream = (printToStderr) ? System.err : System.out; try { ! clazz = loader.loadClass(classname); } catch (ClassNotFoundException cnfe) { ! ostream.println(getLocalizedMessage("java.launcher.cls.error1", classname)); ! NoClassDefFoundError ncdfe = new NoClassDefFoundError(classname); ncdfe.initCause(cnfe); throw ncdfe; } ! signatureDiagnostic(ostream, clazz); ! return clazz; } static void signatureDiagnostic(PrintStream ostream, Class<?> clazz) { String classname = clazz.getName(); Method method = null; --- 426,469 ---- * @param isJar * @param name * @return * @throws java.io.IOException */ ! public static Class<?> checkAndLoadMain(boolean printToStderr, ! int mode, ! String what) throws IOException ! { ! ! ClassLoader ld = ClassLoader.getSystemClassLoader(); ! // get the class name ! String cn = null; ! switch (mode) { ! case LM_CLASS: ! cn = what; ! break; ! case LM_JAR: ! cn = getMainClassFromJar(what); ! break; ! default: ! throw new InternalError("" + mode + ": Unknown launch mode"); ! } ! cn = cn.replace('/', '.'); ! PrintStream ostream = (printToStderr) ? System.err : System.out; + Class<?> c = null; try { ! c = ld.loadClass(cn); } catch (ClassNotFoundException cnfe) { ! ostream.println(getLocalizedMessage("java.launcher.cls.error1", ! cn)); ! NoClassDefFoundError ncdfe = new NoClassDefFoundError(cn); ncdfe.initCause(cnfe); throw ncdfe; } ! signatureDiagnostic(ostream, c); ! return c; } static void signatureDiagnostic(PrintStream ostream, Class<?> clazz) { String classname = clazz.getName(); Method method = null;