class jdk.internal.loader.URLClassPath$FileLoader extends jdk.internal.loader.URLClassPath$Loader
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.internal.loader.URLClassPath$FileLoader
super_class: jdk.internal.loader.URLClassPath$Loader
{
private java.io.File dir;
descriptor: Ljava/io/File;
flags: (0x0002) ACC_PRIVATE
void <init>(java.net.URL);
descriptor: (Ljava/net/URL;)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial jdk.internal.loader.URLClassPath$Loader.<init>:(Ljava/net/URL;)V
1: ldc "file"
aload 1
invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 3
2: new java.lang.IllegalArgumentException
dup
ldc "url"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: jdk.internal.loader.URLClassPath$FileLoader java.net.URL
StackMap stack:
aload 1
invokevirtual java.net.URL.getFile:()Ljava/lang/String;
bipush 47
getstatic java.io.File.separatorChar:C
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 2
start local 2 4: aload 2
invokestatic sun.net.www.ParseUtil.decode:(Ljava/lang/String;)Ljava/lang/String;
astore 2
5: aload 0
new java.io.File
dup
aload 2
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokevirtual java.io.File.getCanonicalFile:()Ljava/io/File;
putfield jdk.internal.loader.URLClassPath$FileLoader.dir:Ljava/io/File;
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/internal/loader/URLClassPath$FileLoader;
0 7 1 url Ljava/net/URL;
4 7 2 path Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
url
java.net.URL findResource(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Ljava/net/URL;
flags: (0x0000)
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
invokevirtual jdk.internal.loader.URLClassPath$FileLoader.getResource:(Ljava/lang/String;Z)Ljdk/internal/loader/Resource;
astore 3
start local 3 1: aload 3
ifnull 3
2: aload 3
invokevirtual jdk.internal.loader.Resource.getURL:()Ljava/net/URL;
areturn
3: StackMap locals: jdk.internal.loader.Resource
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/loader/URLClassPath$FileLoader;
0 4 1 name Ljava/lang/String;
0 4 2 check Z
1 4 3 rsc Ljdk/internal/loader/Resource;
MethodParameters:
Name Flags
name final
check
jdk.internal.loader.Resource getResource(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Ljdk/internal/loader/Resource;
flags: (0x0000)
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: new java.net.URL
dup
aload 0
invokevirtual jdk.internal.loader.URLClassPath$FileLoader.getBaseURL:()Ljava/net/URL;
ldc "."
invokespecial java.net.URL.<init>:(Ljava/net/URL;Ljava/lang/String;)V
astore 4
start local 4 1: new java.net.URL
dup
aload 0
invokevirtual jdk.internal.loader.URLClassPath$FileLoader.getBaseURL:()Ljava/net/URL;
aload 1
iconst_0
invokestatic sun.net.www.ParseUtil.encodePath:(Ljava/lang/String;Z)Ljava/lang/String;
invokespecial java.net.URL.<init>:(Ljava/net/URL;Ljava/lang/String;)V
astore 3
start local 3 2: aload 3
invokevirtual java.net.URL.getFile:()Ljava/lang/String;
aload 4
invokevirtual java.net.URL.getFile:()Ljava/lang/String;
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 4
3: aconst_null
areturn
4: StackMap locals: java.net.URL java.net.URL
StackMap stack:
iload 2
ifeq 6
5: aload 3
invokestatic jdk.internal.loader.URLClassPath.check:(Ljava/net/URL;)V
6: StackMap locals:
StackMap stack:
aload 1
ldc ".."
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
iconst_m1
if_icmpeq 12
7: new java.io.File
dup
aload 0
getfield jdk.internal.loader.URLClassPath$FileLoader.dir:Ljava/io/File;
aload 1
bipush 47
getstatic java.io.File.separatorChar:C
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
8: invokevirtual java.io.File.getCanonicalFile:()Ljava/io/File;
9: astore 5
start local 5 10: aload 5
invokevirtual java.io.File.getPath:()Ljava/lang/String;
aload 0
getfield jdk.internal.loader.URLClassPath$FileLoader.dir:Ljava/io/File;
invokevirtual java.io.File.getPath:()Ljava/lang/String;
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 13
11: aconst_null
areturn
end local 5 12: StackMap locals:
StackMap stack:
new java.io.File
dup
aload 0
getfield jdk.internal.loader.URLClassPath$FileLoader.dir:Ljava/io/File;
aload 1
bipush 47
getstatic java.io.File.separatorChar:C
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 5
start local 5 13: StackMap locals: java.io.File
StackMap stack:
aload 5
invokevirtual java.io.File.exists:()Z
ifeq 18
14: new jdk.internal.loader.URLClassPath$FileLoader$1
dup
aload 0
aload 1
aload 3
aload 5
invokespecial jdk.internal.loader.URLClassPath$FileLoader$1.<init>:(Ljdk/internal/loader/URLClassPath$FileLoader;Ljava/lang/String;Ljava/net/URL;Ljava/io/File;)V
15: areturn
end local 5 end local 4 end local 3 16: StackMap locals: jdk.internal.loader.URLClassPath$FileLoader java.lang.String int
StackMap stack: java.lang.Exception
pop
17: aconst_null
areturn
start local 3 18: StackMap locals: java.net.URL
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Ljdk/internal/loader/URLClassPath$FileLoader;
0 19 1 name Ljava/lang/String;
0 19 2 check Z
2 16 3 url Ljava/net/URL;
18 19 3 url Ljava/net/URL;
1 16 4 normalizedBase Ljava/net/URL;
10 12 5 file Ljava/io/File;
13 16 5 file Ljava/io/File;
Exception table:
from to target type
0 3 16 Class java.lang.Exception
4 11 16 Class java.lang.Exception
12 15 16 Class java.lang.Exception
MethodParameters:
Name Flags
name final
check
}
SourceFile: "URLClassPath.java"
NestHost: jdk.internal.loader.URLClassPath
InnerClasses:
private FileLoader = jdk.internal.loader.URLClassPath$FileLoader of jdk.internal.loader.URLClassPath
jdk.internal.loader.URLClassPath$FileLoader$1
private Loader = jdk.internal.loader.URLClassPath$Loader of jdk.internal.loader.URLClassPath