class com.sun.tools.extcheck.ExtCheck$JarLoader
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.sun.tools.extcheck.ExtCheck$JarLoader
super_class: java.lang.Object
{
private final java.net.URL base;
descriptor: Ljava/net/URL;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.util.jar.JarFile jar;
descriptor: Ljava/util/jar/JarFile;
flags: (0x0002) ACC_PRIVATE
private java.net.URL csu;
descriptor: Ljava/net/URL;
flags: (0x0002) ACC_PRIVATE
void <init>(java.net.URL);
descriptor: (Ljava/net/URL;)V
flags: (0x0000)
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "!/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
start local 2 2: aconst_null
astore 3
start local 3 3: new java.net.URL
dup
ldc "jar"
ldc ""
aload 2
invokespecial java.net.URL.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
astore 3
4: aload 0
aload 0
aload 1
invokevirtual com.sun.tools.extcheck.ExtCheck$JarLoader.findJarFile:(Ljava/net/URL;)Ljava/util/jar/JarFile;
putfield com.sun.tools.extcheck.ExtCheck$JarLoader.jar:Ljava/util/jar/JarFile;
5: aload 0
aload 1
putfield com.sun.tools.extcheck.ExtCheck$JarLoader.csu:Ljava/net/URL;
6: goto 11
StackMap locals: com.sun.tools.extcheck.ExtCheck$JarLoader java.net.URL java.lang.String java.net.URL
StackMap stack: java.net.MalformedURLException
7: pop
8: new java.lang.StringBuilder
dup
ldc "Malformed url "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.sun.tools.extcheck.ExtCheck.error:(Ljava/lang/String;)V
goto 11
9: StackMap locals:
StackMap stack: java.io.IOException
pop
10: ldc "IO Exception occurred"
invokestatic com.sun.tools.extcheck.ExtCheck.error:(Ljava/lang/String;)V
11: StackMap locals:
StackMap stack:
aload 0
aload 3
putfield com.sun.tools.extcheck.ExtCheck$JarLoader.base:Ljava/net/URL;
12: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/sun/tools/extcheck/ExtCheck$JarLoader;
0 13 1 url Ljava/net/URL;
2 13 2 urlName Ljava/lang/String;
3 13 3 tmpBaseURL Ljava/net/URL;
Exception table:
from to target type
3 6 7 Class java.net.MalformedURLException
3 6 9 Class java.io.IOException
MethodParameters:
Name Flags
url
java.net.URL getBaseURL();
descriptor: ()Ljava/net/URL;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.extcheck.ExtCheck$JarLoader.base:Ljava/net/URL;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/extcheck/ExtCheck$JarLoader;
java.util.jar.JarFile getJarFile();
descriptor: ()Ljava/util/jar/JarFile;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.extcheck.ExtCheck$JarLoader.jar:Ljava/util/jar/JarFile;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/extcheck/ExtCheck$JarLoader;
private java.util.jar.JarFile findJarFile(java.net.URL);
descriptor: (Ljava/net/URL;)Ljava/util/jar/JarFile;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: ldc "file"
aload 1
invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 6
1: 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 2: new java.io.File
dup
aload 2
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 3
start local 3 3: aload 3
invokevirtual java.io.File.exists:()Z
ifne 5
4: new java.io.FileNotFoundException
dup
aload 2
invokespecial java.io.FileNotFoundException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: java.lang.String java.io.File
StackMap stack:
new java.util.jar.JarFile
dup
aload 2
invokespecial java.util.jar.JarFile.<init>:(Ljava/lang/String;)V
areturn
end local 3 end local 2 6: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.tools.extcheck.ExtCheck$JarLoader.getBaseURL:()Ljava/net/URL;
invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
astore 2
start local 2 7: aload 2
checkcast java.net.JarURLConnection
invokevirtual java.net.JarURLConnection.getJarFile:()Ljava/util/jar/JarFile;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/tools/extcheck/ExtCheck$JarLoader;
0 8 1 url Ljava/net/URL;
2 6 2 path Ljava/lang/String;
3 6 3 file Ljava/io/File;
7 8 2 uc Ljava/net/URLConnection;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
url
java.net.URL[] getClassPath();
descriptor: ()[Ljava/net/URL;
flags: (0x0000)
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.extcheck.ExtCheck$JarLoader.jar:Ljava/util/jar/JarFile;
invokevirtual java.util.jar.JarFile.getManifest:()Ljava/util/jar/Manifest;
astore 1
start local 1 1: aload 1
ifnull 7
2: aload 1
invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
astore 2
start local 2 3: aload 2
ifnull 7
4: aload 2
getstatic java.util.jar.Attributes$Name.CLASS_PATH:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
astore 3
start local 3 5: aload 3
ifnull 7
6: aload 0
aload 0
getfield com.sun.tools.extcheck.ExtCheck$JarLoader.csu:Ljava/net/URL;
aload 3
invokevirtual com.sun.tools.extcheck.ExtCheck$JarLoader.parseClassPath:(Ljava/net/URL;Ljava/lang/String;)[Ljava/net/URL;
areturn
end local 3 end local 2 7: StackMap locals: java.util.jar.Manifest
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/tools/extcheck/ExtCheck$JarLoader;
1 8 1 man Ljava/util/jar/Manifest;
3 7 2 attr Ljava/util/jar/Attributes;
5 7 3 value Ljava/lang/String;
Exceptions:
throws java.io.IOException
private java.net.URL[] parseClassPath(java.net.URL, java.lang.String);
descriptor: (Ljava/net/URL;Ljava/lang/String;)[Ljava/net/URL;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: new java.util.StringTokenizer
dup
aload 2
invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;)V
astore 3
start local 3 1: aload 3
invokevirtual java.util.StringTokenizer.countTokens:()I
anewarray java.net.URL
astore 4
start local 4 2: iconst_0
istore 5
start local 5 3: goto 7
4: StackMap locals: java.util.StringTokenizer java.net.URL[] int
StackMap stack:
aload 3
invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
astore 6
start local 6 5: aload 4
iload 5
new java.net.URL
dup
aload 1
aload 6
invokespecial java.net.URL.<init>:(Ljava/net/URL;Ljava/lang/String;)V
aastore
6: iinc 5 1
end local 6 7: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
ifne 4
8: aload 4
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/sun/tools/extcheck/ExtCheck$JarLoader;
0 9 1 base Ljava/net/URL;
0 9 2 value Ljava/lang/String;
1 9 3 st Ljava/util/StringTokenizer;
2 9 4 urls [Ljava/net/URL;
3 9 5 i I
5 7 6 path Ljava/lang/String;
Exceptions:
throws java.net.MalformedURLException
MethodParameters:
Name Flags
base
value
}
SourceFile: "ExtCheck.java"
NestHost: com.sun.tools.extcheck.ExtCheck
InnerClasses:
private JarLoader = com.sun.tools.extcheck.ExtCheck$JarLoader of com.sun.tools.extcheck.ExtCheck
public Name = java.util.jar.Attributes$Name of java.util.jar.Attributes