home *** CD-ROM | disk | FTP | other *** search
- package sun.misc;
-
- import java.io.File;
- import java.io.IOException;
- import java.net.URL;
- import java.net.URLClassLoader;
- import java.security.AccessControlContext;
- import java.security.AccessController;
- import java.security.CodeSource;
- import java.security.PrivilegedActionException;
- import java.security.ProtectionDomain;
- import java.security.cert.Certificate;
- import java.util.StringTokenizer;
- import java.util.Vector;
-
- class Launcher$ExtClassLoader extends URLClassLoader {
- private File[] dirs;
-
- public static Launcher$ExtClassLoader getExtClassLoader() throws IOException {
- File[] var0 = getExtDirs();
-
- try {
- return (Launcher$ExtClassLoader)AccessController.doPrivileged(new Launcher.ExtClassLoader.1(var0));
- } catch (PrivilegedActionException var2) {
- throw (IOException)var2.getException();
- }
- }
-
- void addExtURL(URL var1) {
- super.addURL(var1);
- }
-
- public Launcher$ExtClassLoader(File[] var1) throws IOException {
- super(getExtURLs(var1), (ClassLoader)null, Launcher.access$100());
- this.dirs = var1;
- }
-
- private static File[] getExtDirs() {
- String var0 = System.getProperty("java.ext.dirs");
- File[] var1;
- if (var0 != null) {
- StringTokenizer var2 = new StringTokenizer(var0, File.pathSeparator);
- int var3 = var2.countTokens();
- var1 = new File[var3];
-
- for(int var4 = 0; var4 < var3; ++var4) {
- var1[var4] = new File(var2.nextToken());
- }
- } else {
- var1 = new File[0];
- }
-
- return var1;
- }
-
- private static URL[] getExtURLs(File[] var0) throws IOException {
- Vector var1 = new Vector();
-
- for(int var2 = 0; var2 < var0.length; ++var2) {
- String[] var3 = var0[var2].list();
- if (var3 != null) {
- for(int var4 = 0; var4 < var3.length; ++var4) {
- if (!var3[var4].equals("meta-index")) {
- File var5 = new File(var0[var2], var3[var4]);
- var1.add(Launcher.getFileURL(var5));
- }
- }
- }
- }
-
- URL[] var6 = new URL[var1.size()];
- var1.copyInto(var6);
- return var6;
- }
-
- public String findLibrary(String var1) {
- var1 = System.mapLibraryName(var1);
-
- for(int var2 = 0; var2 < this.dirs.length; ++var2) {
- String var3 = System.getProperty("os.arch");
- if (var3 != null) {
- File var4 = new File(new File(this.dirs[var2], var3), var1);
- if (var4.exists()) {
- return var4.getAbsolutePath();
- }
- }
-
- File var6 = new File(this.dirs[var2], var1);
- if (var6.exists()) {
- return var6.getAbsolutePath();
- }
- }
-
- return null;
- }
-
- private static AccessControlContext getContext(File[] var0) throws IOException {
- PathPermissions var1 = new PathPermissions(var0);
- ProtectionDomain var2 = new ProtectionDomain(new CodeSource(var1.getCodeBase(), (Certificate[])null), var1);
- AccessControlContext var3 = new AccessControlContext(new ProtectionDomain[]{var2});
- return var3;
- }
- }
-