home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / sun / misc / Launcher$ExtClassLoader.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  2.8 KB  |  104 lines

  1. package sun.misc;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.net.URL;
  6. import java.net.URLClassLoader;
  7. import java.security.AccessControlContext;
  8. import java.security.AccessController;
  9. import java.security.CodeSource;
  10. import java.security.PrivilegedActionException;
  11. import java.security.ProtectionDomain;
  12. import java.security.cert.Certificate;
  13. import java.util.StringTokenizer;
  14. import java.util.Vector;
  15.  
  16. class Launcher$ExtClassLoader extends URLClassLoader {
  17.    private File[] dirs;
  18.  
  19.    public static Launcher$ExtClassLoader getExtClassLoader() throws IOException {
  20.       File[] var0 = getExtDirs();
  21.  
  22.       try {
  23.          return (Launcher$ExtClassLoader)AccessController.doPrivileged(new Launcher.ExtClassLoader.1(var0));
  24.       } catch (PrivilegedActionException var2) {
  25.          throw (IOException)var2.getException();
  26.       }
  27.    }
  28.  
  29.    void addExtURL(URL var1) {
  30.       super.addURL(var1);
  31.    }
  32.  
  33.    public Launcher$ExtClassLoader(File[] var1) throws IOException {
  34.       super(getExtURLs(var1), (ClassLoader)null, Launcher.access$100());
  35.       this.dirs = var1;
  36.    }
  37.  
  38.    private static File[] getExtDirs() {
  39.       String var0 = System.getProperty("java.ext.dirs");
  40.       File[] var1;
  41.       if (var0 != null) {
  42.          StringTokenizer var2 = new StringTokenizer(var0, File.pathSeparator);
  43.          int var3 = var2.countTokens();
  44.          var1 = new File[var3];
  45.  
  46.          for(int var4 = 0; var4 < var3; ++var4) {
  47.             var1[var4] = new File(var2.nextToken());
  48.          }
  49.       } else {
  50.          var1 = new File[0];
  51.       }
  52.  
  53.       return var1;
  54.    }
  55.  
  56.    private static URL[] getExtURLs(File[] var0) throws IOException {
  57.       Vector var1 = new Vector();
  58.  
  59.       for(int var2 = 0; var2 < var0.length; ++var2) {
  60.          String[] var3 = var0[var2].list();
  61.          if (var3 != null) {
  62.             for(int var4 = 0; var4 < var3.length; ++var4) {
  63.                if (!var3[var4].equals("meta-index")) {
  64.                   File var5 = new File(var0[var2], var3[var4]);
  65.                   var1.add(Launcher.getFileURL(var5));
  66.                }
  67.             }
  68.          }
  69.       }
  70.  
  71.       URL[] var6 = new URL[var1.size()];
  72.       var1.copyInto(var6);
  73.       return var6;
  74.    }
  75.  
  76.    public String findLibrary(String var1) {
  77.       var1 = System.mapLibraryName(var1);
  78.  
  79.       for(int var2 = 0; var2 < this.dirs.length; ++var2) {
  80.          String var3 = System.getProperty("os.arch");
  81.          if (var3 != null) {
  82.             File var4 = new File(new File(this.dirs[var2], var3), var1);
  83.             if (var4.exists()) {
  84.                return var4.getAbsolutePath();
  85.             }
  86.          }
  87.  
  88.          File var6 = new File(this.dirs[var2], var1);
  89.          if (var6.exists()) {
  90.             return var6.getAbsolutePath();
  91.          }
  92.       }
  93.  
  94.       return null;
  95.    }
  96.  
  97.    private static AccessControlContext getContext(File[] var0) throws IOException {
  98.       PathPermissions var1 = new PathPermissions(var0);
  99.       ProtectionDomain var2 = new ProtectionDomain(new CodeSource(var1.getCodeBase(), (Certificate[])null), var1);
  100.       AccessControlContext var3 = new AccessControlContext(new ProtectionDomain[]{var2});
  101.       return var3;
  102.    }
  103. }
  104.