class sun.misc.Launcher$AppClassLoader extends java.net.URLClassLoader
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.misc.Launcher$AppClassLoader
super_class: java.net.URLClassLoader
{
final sun.misc.URLClassPath ucp;
descriptor: Lsun/misc/URLClassPath;
flags: (0x0010) ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lsun/misc/Launcher;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic sun.misc.Launcher$AppClassLoader.$assertionsDisabled:Z
3: invokestatic java.lang.ClassLoader.registerAsParallelCapable:()Z
pop
4: return
LocalVariableTable:
Start End Slot Name Signature
public static java.lang.ClassLoader getAppClassLoader(java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;)Ljava/lang/ClassLoader;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: ldc "java.class.path"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 1
start local 1 1: aload 1
ifnonnull 2
iconst_0
anewarray java.io.File
goto 3
StackMap locals: java.lang.String
StackMap stack:
2: aload 1
invokestatic sun.misc.Launcher.getClassPath:(Ljava/lang/String;)[Ljava/io/File;
StackMap locals:
StackMap stack: java.io.File[]
3: astore 2
start local 2 4: new sun.misc.Launcher$AppClassLoader$1
dup
aload 1
aload 2
aload 0
invokespecial sun.misc.Launcher$AppClassLoader$1.<init>:(Ljava/lang/String;[Ljava/io/File;Ljava/lang/ClassLoader;)V
5: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.ClassLoader
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 extcl Ljava/lang/ClassLoader;
1 6 1 s Ljava/lang/String;
4 6 2 path [Ljava/io/File;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
extcl final
void <init>(java.net.URL[], java.lang.ClassLoader);
descriptor: ([Ljava/net/URL;Ljava/lang/ClassLoader;)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
getstatic sun.misc.Launcher.factory:Ljava/net/URLStreamHandlerFactory;
invokespecial java.net.URLClassLoader.<init>:([Ljava/net/URL;Ljava/lang/ClassLoader;Ljava/net/URLStreamHandlerFactory;)V
1: aload 0
invokestatic sun.misc.SharedSecrets.getJavaNetAccess:()Lsun/misc/JavaNetAccess;
aload 0
invokeinterface sun.misc.JavaNetAccess.getURLClassPath:(Ljava/net/URLClassLoader;)Lsun/misc/URLClassPath;
putfield sun.misc.Launcher$AppClassLoader.ucp:Lsun/misc/URLClassPath;
2: aload 0
getfield sun.misc.Launcher$AppClassLoader.ucp:Lsun/misc/URLClassPath;
aload 0
invokevirtual sun.misc.URLClassPath.initLookupCache:(Ljava/lang/ClassLoader;)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/misc/Launcher$AppClassLoader;
0 4 1 urls [Ljava/net/URL;
0 4 2 parent Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
urls
parent
public java.lang.Class<?> loadClass(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
bipush 46
invokevirtual java.lang.String.lastIndexOf:(I)I
istore 3
start local 3 1: iload 3
iconst_m1
if_icmpeq 5
2: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 4
start local 4 3: aload 4
ifnull 5
4: aload 4
aload 1
iconst_0
iload 3
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.lang.SecurityManager.checkPackageAccess:(Ljava/lang/String;)V
end local 4 5: StackMap locals: int
StackMap stack:
aload 0
getfield sun.misc.Launcher$AppClassLoader.ucp:Lsun/misc/URLClassPath;
aload 1
invokevirtual sun.misc.URLClassPath.knownToNotExist:(Ljava/lang/String;)Z
ifeq 12
6: aload 0
aload 1
invokevirtual sun.misc.Launcher$AppClassLoader.findLoadedClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 4
start local 4 7: aload 4
ifnull 11
8: iload 2
ifeq 10
9: aload 0
aload 4
invokevirtual sun.misc.Launcher$AppClassLoader.resolveClass:(Ljava/lang/Class;)V
10: StackMap locals: java.lang.Class
StackMap stack:
aload 4
areturn
11: StackMap locals:
StackMap stack:
new java.lang.ClassNotFoundException
dup
aload 1
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
athrow
end local 4 12: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
invokespecial java.net.URLClassLoader.loadClass:(Ljava/lang/String;Z)Ljava/lang/Class;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/misc/Launcher$AppClassLoader;
0 13 1 name Ljava/lang/String;
0 13 2 resolve Z
1 13 3 i I
3 5 4 sm Ljava/lang/SecurityManager;
7 12 4 c Ljava/lang/Class<*>;
Exceptions:
throws java.lang.ClassNotFoundException
Signature: (Ljava/lang/String;Z)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
resolve
protected java.security.PermissionCollection getPermissions(java.security.CodeSource);
descriptor: (Ljava/security/CodeSource;)Ljava/security/PermissionCollection;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial java.net.URLClassLoader.getPermissions:(Ljava/security/CodeSource;)Ljava/security/PermissionCollection;
astore 2
start local 2 1: aload 2
new java.lang.RuntimePermission
dup
ldc "exitVM"
invokespecial java.lang.RuntimePermission.<init>:(Ljava/lang/String;)V
invokevirtual java.security.PermissionCollection.add:(Ljava/security/Permission;)V
2: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/misc/Launcher$AppClassLoader;
0 3 1 codesource Ljava/security/CodeSource;
1 3 2 perms Ljava/security/PermissionCollection;
MethodParameters:
Name Flags
codesource
private void appendToClassPathForInstrumentation(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: getstatic sun.misc.Launcher$AppClassLoader.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
new java.io.File
dup
aload 1
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokestatic sun.misc.Launcher.getFileURL:(Ljava/io/File;)Ljava/net/URL;
invokespecial java.net.URLClassLoader.addURL:(Ljava/net/URL;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/misc/Launcher$AppClassLoader;
0 3 1 path Ljava/lang/String;
MethodParameters:
Name Flags
path
private static java.security.AccessControlContext getContext(java.io.File[]);
descriptor: ([Ljava/io/File;)Ljava/security/AccessControlContext;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=4, args_size=1
start local 0 0: new sun.misc.PathPermissions
dup
aload 0
invokespecial sun.misc.PathPermissions.<init>:([Ljava/io/File;)V
1: astore 1
start local 1 2: new java.security.ProtectionDomain
dup
new java.security.CodeSource
dup
aload 1
invokevirtual sun.misc.PathPermissions.getCodeBase:()Ljava/net/URL;
3: aconst_null
invokespecial java.security.CodeSource.<init>:(Ljava/net/URL;[Ljava/security/cert/Certificate;)V
4: aload 1
5: invokespecial java.security.ProtectionDomain.<init>:(Ljava/security/CodeSource;Ljava/security/PermissionCollection;)V
6: astore 2
start local 2 7: new java.security.AccessControlContext
dup
iconst_1
anewarray java.security.ProtectionDomain
dup
iconst_0
aload 2
aastore
invokespecial java.security.AccessControlContext.<init>:([Ljava/security/ProtectionDomain;)V
8: astore 3
start local 3 9: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 cp [Ljava/io/File;
2 10 1 perms Lsun/misc/PathPermissions;
7 10 2 domain Ljava/security/ProtectionDomain;
9 10 3 acc Ljava/security/AccessControlContext;
Exceptions:
throws java.net.MalformedURLException
MethodParameters:
Name Flags
cp
}
SourceFile: "Launcher.java"
NestHost: sun.misc.Launcher
InnerClasses:
AppClassLoader = sun.misc.Launcher$AppClassLoader of sun.misc.Launcher
sun.misc.Launcher$AppClassLoader$1