home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2004 December / PCpro_2004_12.ISO / files / webserver / xampp / xampp-tomcat-addon-1.4.9-installer.exe / LauncherBootstrap.class (.txt) < prev    next >
Encoding:
Java Class File  |  2004-08-28  |  4.7 KB  |  96 lines

  1. import java.io.File;
  2. import java.io.FileInputStream;
  3. import java.io.FileNotFoundException;
  4. import java.lang.reflect.Method;
  5. import java.net.MalformedURLException;
  6. import java.net.URL;
  7. import java.net.URLClassLoader;
  8. import java.net.URLDecoder;
  9. import java.util.ArrayList;
  10. import java.util.Properties;
  11. import java.util.StringTokenizer;
  12.  
  13. public class LauncherBootstrap {
  14.    public static final String ANT_CLASSPATH_PROP_NAME = "ant.class.path";
  15.    public static final String LAUNCHER_JAR_FILE_NAME = "commons-launcher.jar";
  16.    public static final String LAUNCHER_PROPS_FILE_NAME = "launcher.properties";
  17.    public static final String LAUNCHER_MAIN_CLASS_NAME = "org.apache.commons.launcher.Launcher";
  18.    private static Class launcherClass = null;
  19.    // $FF: synthetic field
  20.    static Class class$LauncherBootstrap;
  21.    // $FF: synthetic field
  22.    static Class class$java$lang$String;
  23.    // $FF: synthetic field
  24.    static Class array$Ljava$lang$String;
  25.  
  26.    public static void main(String[] args) {
  27.       try {
  28.          URL coreURL = (class$LauncherBootstrap == null ? (class$LauncherBootstrap = class$("LauncherBootstrap")) : class$LauncherBootstrap).getResource("/commons-launcher.jar");
  29.          if (coreURL == null) {
  30.             throw new FileNotFoundException("commons-launcher.jar");
  31.          }
  32.  
  33.          File coreDir = (new File(URLDecoder.decode(coreURL.getFile()))).getCanonicalFile().getParentFile();
  34.          File propsFile = new File(coreDir, "launcher.properties");
  35.          if (!propsFile.canRead()) {
  36.             throw new FileNotFoundException(propsFile.getPath());
  37.          }
  38.  
  39.          Properties props = new Properties();
  40.          FileInputStream fis = new FileInputStream(propsFile);
  41.          props.load(fis);
  42.          fis.close();
  43.          URL[] antURLs = fileListToURLs((String)props.get("ant.class.path"));
  44.          URL[] urls = new URL[1 + antURLs.length];
  45.          urls[0] = coreURL;
  46.  
  47.          for(int i = 0; i < antURLs.length; ++i) {
  48.             urls[i + 1] = antURLs[i];
  49.          }
  50.  
  51.          ClassLoader parentLoader = Thread.currentThread().getContextClassLoader();
  52.          URLClassLoader loader = null;
  53.          if (parentLoader != null) {
  54.             loader = new URLClassLoader(urls, parentLoader);
  55.          } else {
  56.             loader = new URLClassLoader(urls);
  57.          }
  58.  
  59.          launcherClass = loader.loadClass("org.apache.commons.launcher.Launcher");
  60.          Method getLocalizedStringMethod = launcherClass.getDeclaredMethod("getLocalizedString", class$java$lang$String == null ? (class$java$lang$String = class$("java.lang.String")) : class$java$lang$String);
  61.          Method startMethod = launcherClass.getDeclaredMethod("start", array$Ljava$lang$String == null ? (array$Ljava$lang$String = class$("[Ljava.lang.String;")) : array$Ljava$lang$String);
  62.          int returnValue = (Integer)startMethod.invoke((Object)null, args);
  63.          System.exit(returnValue);
  64.       } catch (Throwable t) {
  65.          t.printStackTrace();
  66.          System.exit(1);
  67.       }
  68.  
  69.    }
  70.  
  71.    private static URL[] fileListToURLs(String fileList) throws MalformedURLException {
  72.       if (fileList != null && !"".equals(fileList)) {
  73.          ArrayList list = new ArrayList();
  74.          StringTokenizer tokenizer = new StringTokenizer(fileList, ":");
  75.          URL bootstrapURL = (class$LauncherBootstrap == null ? (class$LauncherBootstrap = class$("LauncherBootstrap")) : class$LauncherBootstrap).getResource("/" + (class$LauncherBootstrap == null ? (class$LauncherBootstrap = class$("LauncherBootstrap")) : class$LauncherBootstrap).getName() + ".class");
  76.  
  77.          while(tokenizer.hasMoreTokens()) {
  78.             list.add(new URL(bootstrapURL, tokenizer.nextToken()));
  79.          }
  80.  
  81.          return (URL[])list.toArray(new URL[list.size()]);
  82.       } else {
  83.          return new URL[0];
  84.       }
  85.    }
  86.  
  87.    // $FF: synthetic method
  88.    static Class class$(String x0) {
  89.       try {
  90.          return Class.forName(x0);
  91.       } catch (ClassNotFoundException x1) {
  92.          throw new NoClassDefFoundError(x1.getMessage());
  93.       }
  94.    }
  95. }
  96.