home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &… the Search for Life CD 3 / 0_CD-ROM.iso / install / jre1_3 / lib / rt.jar / sun / misc / Launcher.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  4.4 KB  |  177 lines

  1. package sun.misc;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.net.MalformedURLException;
  6. import java.net.URL;
  7. import java.net.URLStreamHandler;
  8. import java.net.URLStreamHandlerFactory;
  9. import java.security.AccessController;
  10. import sun.security.action.GetPropertyAction;
  11.  
  12. public class Launcher {
  13.    private static Launcher launcher = (Launcher)AccessController.doPrivileged(new 1());
  14.    private static URLStreamHandlerFactory factory = new Factory((1)null);
  15.    private ClassLoader loader;
  16.    private static URLStreamHandler fileHandler;
  17.  
  18.    public static Launcher getLauncher() {
  19.       return launcher;
  20.    }
  21.  
  22.    public Launcher() {
  23.       ExtClassLoader var1;
  24.       try {
  25.          var1 = sun.misc.Launcher.ExtClassLoader.getExtClassLoader();
  26.       } catch (IOException var13) {
  27.          throw new InternalError("Could not create extension class loader");
  28.       }
  29.  
  30.       try {
  31.          this.loader = sun.misc.Launcher.AppClassLoader.getAppClassLoader(var1);
  32.       } catch (IOException var12) {
  33.          throw new InternalError("Could not create application class loader");
  34.       }
  35.  
  36.       Thread.currentThread().setContextClassLoader(this.loader);
  37.       String var2 = System.getProperty("java.security.manager");
  38.       if (var2 != null) {
  39.          SecurityManager var3 = null;
  40.          if (!"".equals(var2) && !"default".equals(var2)) {
  41.             try {
  42.                var3 = (SecurityManager)this.loader.loadClass(var2).newInstance();
  43.             } catch (IllegalAccessException var8) {
  44.             } catch (InstantiationException var9) {
  45.             } catch (ClassNotFoundException var10) {
  46.             } catch (ClassCastException var11) {
  47.             }
  48.          } else {
  49.             var3 = new SecurityManager();
  50.          }
  51.  
  52.          if (var3 == null) {
  53.             throw new InternalError("Could not create SecurityManager: " + var2);
  54.          }
  55.  
  56.          System.setSecurityManager(var3);
  57.       }
  58.  
  59.    }
  60.  
  61.    public ClassLoader getClassLoader() {
  62.       return this.loader;
  63.    }
  64.  
  65.    public static URLClassPath getBootstrapClassPath() {
  66.       String var0 = (String)AccessController.doPrivileged(new GetPropertyAction("sun.boot.class.path"));
  67.       if (var0 == null) {
  68.          var0 = (String)AccessController.doPrivileged(new GetPropertyAction("java.class.path"));
  69.       }
  70.  
  71.       URL[] var1;
  72.       if (var0 != null) {
  73.          var1 = (URL[])AccessController.doPrivileged(new 4(var0));
  74.       } else {
  75.          var1 = new URL[0];
  76.       }
  77.  
  78.       return new URLClassPath(var1, factory);
  79.    }
  80.  
  81.    private static URL[] pathToURLs(File[] var0) {
  82.       URL[] var1 = new URL[var0.length];
  83.  
  84.       for(int var2 = 0; var2 < var0.length; ++var2) {
  85.          var1[var2] = getFileURL(var0[var2]);
  86.       }
  87.  
  88.       return var1;
  89.    }
  90.  
  91.    private static File[] getClassPath(String var0) {
  92.       File[] var1;
  93.       if (var0 != null) {
  94.          int var2 = 0;
  95.          int var3 = 1;
  96.          int var4 = 0;
  97.  
  98.          for(int var5 = 0; (var4 = var0.indexOf(File.pathSeparator, var5)) != -1; var5 = var4 + 1) {
  99.             ++var3;
  100.          }
  101.  
  102.          var1 = new File[var3];
  103.          var4 = 0;
  104.  
  105.          int var11;
  106.          for(var11 = 0; (var4 = var0.indexOf(File.pathSeparator, var11)) != -1; var11 = var4 + 1) {
  107.             if (var4 - var11 > 0) {
  108.                var1[var2++] = new File(var0.substring(var11, var4));
  109.             } else {
  110.                var1[var2++] = new File(".");
  111.             }
  112.          }
  113.  
  114.          if (var11 < var0.length()) {
  115.             var1[var2++] = new File(var0.substring(var11));
  116.          } else {
  117.             var1[var2++] = new File(".");
  118.          }
  119.  
  120.          if (var2 != var3) {
  121.             File[] var6 = new File[var2];
  122.             System.arraycopy(var1, 0, var6, 0, var2);
  123.             var1 = var6;
  124.          }
  125.       } else {
  126.          var1 = new File[0];
  127.       }
  128.  
  129.       return var1;
  130.    }
  131.  
  132.    static URL getFileURL(File var0) {
  133.       try {
  134.          var0 = var0.getCanonicalFile();
  135.       } catch (IOException var4) {
  136.       }
  137.  
  138.       String var1 = var0.getAbsolutePath();
  139.       if (File.separatorChar != '/') {
  140.          var1 = var1.replace(File.separatorChar, '/');
  141.       }
  142.  
  143.       if (!var1.startsWith("/")) {
  144.          var1 = "/" + var1;
  145.       }
  146.  
  147.       if (!var1.endsWith("/") && var0.isDirectory()) {
  148.          var1 = var1 + "/";
  149.       }
  150.  
  151.       if (fileHandler == null) {
  152.          fileHandler = factory.createURLStreamHandler("file");
  153.       }
  154.  
  155.       try {
  156.          return new URL("file", "", -1, var1, fileHandler);
  157.       } catch (MalformedURLException var3) {
  158.          throw new InternalError();
  159.       }
  160.    }
  161.  
  162.    // $FF: synthetic method
  163.    static URLStreamHandlerFactory access$100() {
  164.       return factory;
  165.    }
  166.  
  167.    // $FF: synthetic method
  168.    static File[] access$200(String var0) {
  169.       return getClassPath(var0);
  170.    }
  171.  
  172.    // $FF: synthetic method
  173.    static URL[] access$300(File[] var0) {
  174.       return pathToURLs(var0);
  175.    }
  176. }
  177.