public class sun.tools.jar.Main
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.tools.jar.Main
super_class: java.lang.Object
{
java.lang.String program;
descriptor: Ljava/lang/String;
flags: (0x0000)
java.io.PrintStream out;
descriptor: Ljava/io/PrintStream;
flags: (0x0000)
java.io.PrintStream err;
descriptor: Ljava/io/PrintStream;
flags: (0x0000)
java.lang.String fname;
descriptor: Ljava/lang/String;
flags: (0x0000)
java.lang.String mname;
descriptor: Ljava/lang/String;
flags: (0x0000)
java.lang.String ename;
descriptor: Ljava/lang/String;
flags: (0x0000)
java.lang.String zname;
descriptor: Ljava/lang/String;
flags: (0x0000)
java.lang.String[] files;
descriptor: [Ljava/lang/String;
flags: (0x0000)
java.lang.String rootjar;
descriptor: Ljava/lang/String;
flags: (0x0000)
java.util.Map<java.lang.String, java.io.File> entryMap;
descriptor: Ljava/util/Map;
flags: (0x0000)
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/io/File;>;
java.util.Set<java.io.File> entries;
descriptor: Ljava/util/Set;
flags: (0x0000)
Signature: Ljava/util/Set<Ljava/io/File;>;
java.util.Set<java.lang.String> paths;
descriptor: Ljava/util/Set;
flags: (0x0000)
Signature: Ljava/util/Set<Ljava/lang/String;>;
boolean cflag;
descriptor: Z
flags: (0x0000)
boolean uflag;
descriptor: Z
flags: (0x0000)
boolean xflag;
descriptor: Z
flags: (0x0000)
boolean tflag;
descriptor: Z
flags: (0x0000)
boolean vflag;
descriptor: Z
flags: (0x0000)
boolean flag0;
descriptor: Z
flags: (0x0000)
boolean Mflag;
descriptor: Z
flags: (0x0000)
boolean iflag;
descriptor: Z
flags: (0x0000)
boolean pflag;
descriptor: Z
flags: (0x0000)
static final java.lang.String MANIFEST_DIR;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "META-INF/"
static final java.lang.String VERSION;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "1.0"
private static java.util.ResourceBundle rsrc;
descriptor: Ljava/util/ResourceBundle;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final boolean useExtractionTime;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private boolean ok;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private byte[] copyBuf;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private java.util.HashSet<java.lang.String> jarPaths;
descriptor: Ljava/util/HashSet;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/HashSet<Ljava/lang/String;>;
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=3, locals=0, args_size=0
0: ldc Lsun/tools/jar/Main;
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.tools.jar.Main.$assertionsDisabled:Z
3: ldc "sun.tools.jar.useExtractionTime"
invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
4: putstatic sun.tools.jar.Main.useExtractionTime:Z
5: ldc "sun.tools.jar.resources.jar"
invokestatic java.util.ResourceBundle.getBundle:(Ljava/lang/String;)Ljava/util/ResourceBundle;
putstatic sun.tools.jar.Main.rsrc:Ljava/util/ResourceBundle;
6: goto 9
StackMap locals:
StackMap stack: java.util.MissingResourceException
7: pop
8: new java.lang.Error
dup
ldc "Fatal: Resource for jar is missing"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
5 6 7 Class java.util.MissingResourceException
private java.lang.String getMsg(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic sun.tools.jar.Main.rsrc:Ljava/util/ResourceBundle;
aload 1
invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
1: areturn
2: StackMap locals:
StackMap stack: java.util.MissingResourceException
pop
3: new java.lang.Error
dup
ldc "Error in message file"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/tools/jar/Main;
0 4 1 key Ljava/lang/String;
Exception table:
from to target type
0 1 2 Class java.util.MissingResourceException
MethodParameters:
Name Flags
key
private java.lang.String formatMsg(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 1: iconst_1
anewarray java.lang.String
astore 4
start local 4 2: aload 4
iconst_0
aload 2
aastore
3: aload 3
aload 4
invokestatic java.text.MessageFormat.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/tools/jar/Main;
0 4 1 key Ljava/lang/String;
0 4 2 arg Ljava/lang/String;
1 4 3 msg Ljava/lang/String;
2 4 4 args [Ljava/lang/String;
MethodParameters:
Name Flags
key
arg
private java.lang.String formatMsg2(java.lang.String, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 1: iconst_2
anewarray java.lang.String
astore 5
start local 5 2: aload 5
iconst_0
aload 2
aastore
3: aload 5
iconst_1
aload 3
aastore
4: aload 4
aload 5
invokestatic java.text.MessageFormat.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
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 5 0 this Lsun/tools/jar/Main;
0 5 1 key Ljava/lang/String;
0 5 2 arg Ljava/lang/String;
0 5 3 arg1 Ljava/lang/String;
1 5 4 msg Ljava/lang/String;
2 5 5 args [Ljava/lang/String;
MethodParameters:
Name Flags
key
arg
arg1
public void <init>(java.io.PrintStream, java.io.PrintStream, java.lang.String);
descriptor: (Ljava/io/PrintStream;Ljava/io/PrintStream;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
ldc ""
putfield sun.tools.jar.Main.zname:Ljava/lang/String;
2: aload 0
aconst_null
putfield sun.tools.jar.Main.rootjar:Ljava/lang/String;
3: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
4: aload 0
new java.util.LinkedHashSet
dup
invokespecial java.util.LinkedHashSet.<init>:()V
putfield sun.tools.jar.Main.entries:Ljava/util/Set;
5: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield sun.tools.jar.Main.paths:Ljava/util/Set;
6: aload 0
sipush 8192
newarray 8
putfield sun.tools.jar.Main.copyBuf:[B
7: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield sun.tools.jar.Main.jarPaths:Ljava/util/HashSet;
8: aload 0
aload 1
putfield sun.tools.jar.Main.out:Ljava/io/PrintStream;
9: aload 0
aload 2
putfield sun.tools.jar.Main.err:Ljava/io/PrintStream;
10: aload 0
aload 3
putfield sun.tools.jar.Main.program:Ljava/lang/String;
11: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/tools/jar/Main;
0 12 1 out Ljava/io/PrintStream;
0 12 2 err Ljava/io/PrintStream;
0 12 3 program Ljava/lang/String;
MethodParameters:
Name Flags
out
err
program
private static java.io.File createTempFileInSameDirectoryAs(java.io.File);
descriptor: (Ljava/io/File;)Ljava/io/File;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.io.File.getParentFile:()Ljava/io/File;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: new java.io.File
dup
ldc "."
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 1
3: StackMap locals: java.io.File
StackMap stack:
ldc "jartmp"
aconst_null
aload 1
invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 file Ljava/io/File;
1 4 1 dir Ljava/io/File;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
file
public synchronized boolean run(java.lang.String[]);
descriptor: ([Ljava/lang/String;)Z
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 0
iconst_1
putfield sun.tools.jar.Main.ok:Z
1: aload 0
aload 1
invokevirtual sun.tools.jar.Main.parseArgs:([Ljava/lang/String;)Z
ifne 3
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.cflag:Z
ifne 4
aload 0
getfield sun.tools.jar.Main.uflag:Z
ifeq 8
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnull 8
5: aload 0
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
getstatic java.io.File.separatorChar:C
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
putfield sun.tools.jar.Main.zname:Ljava/lang/String;
6: aload 0
getfield sun.tools.jar.Main.zname:Ljava/lang/String;
ldc "./"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 8
7: aload 0
aload 0
getfield sun.tools.jar.Main.zname:Ljava/lang/String;
iconst_2
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
putfield sun.tools.jar.Main.zname:Ljava/lang/String;
8: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.cflag:Z
ifeq 37
9: aconst_null
astore 2
start local 2 10: aconst_null
astore 3
start local 3 11: aload 0
getfield sun.tools.jar.Main.Mflag:Z
ifne 25
12: aload 0
getfield sun.tools.jar.Main.mname:Ljava/lang/String;
ifnull 16
13: new java.io.FileInputStream
dup
aload 0
getfield sun.tools.jar.Main.mname:Ljava/lang/String;
invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
astore 3
14: new java.util.jar.Manifest
dup
new java.io.BufferedInputStream
dup
aload 3
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
astore 2
15: goto 17
16: StackMap locals: java.util.jar.Manifest java.io.InputStream
StackMap stack:
new java.util.jar.Manifest
dup
invokespecial java.util.jar.Manifest.<init>:()V
astore 2
17: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual sun.tools.jar.Main.addVersion:(Ljava/util/jar/Manifest;)V
18: aload 0
aload 2
invokevirtual sun.tools.jar.Main.addCreatedBy:(Ljava/util/jar/Manifest;)V
19: aload 0
aload 2
invokevirtual sun.tools.jar.Main.isAmbiguousMainClass:(Ljava/util/jar/Manifest;)Z
ifeq 23
20: aload 3
ifnull 22
21: aload 3
invokevirtual java.io.InputStream.close:()V
22: StackMap locals:
StackMap stack:
iconst_0
ireturn
23: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.ename:Ljava/lang/String;
ifnull 25
24: aload 0
aload 2
aload 0
getfield sun.tools.jar.Main.ename:Ljava/lang/String;
invokevirtual sun.tools.jar.Main.addMainClass:(Ljava/util/jar/Manifest;Ljava/lang/String;)V
25: StackMap locals:
StackMap stack:
aload 0
aconst_null
aload 0
getfield sun.tools.jar.Main.files:[Ljava/lang/String;
iconst_0
invokevirtual sun.tools.jar.Main.expand:(Ljava/io/File;[Ljava/lang/String;Z)V
26: aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnull 29
27: new java.io.FileOutputStream
dup
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
invokespecial java.io.FileOutputStream.<init>:(Ljava/lang/String;)V
astore 4
start local 4 28: goto 32
end local 4 29: StackMap locals:
StackMap stack:
new java.io.FileOutputStream
dup
getstatic java.io.FileDescriptor.out:Ljava/io/FileDescriptor;
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/FileDescriptor;)V
astore 4
start local 4 30: aload 0
getfield sun.tools.jar.Main.vflag:Z
ifeq 32
31: aload 0
iconst_0
putfield sun.tools.jar.Main.vflag:Z
32: StackMap locals: java.io.OutputStream
StackMap stack:
aload 0
new java.io.BufferedOutputStream
dup
aload 4
sipush 4096
invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;I)V
aload 2
invokevirtual sun.tools.jar.Main.create:(Ljava/io/OutputStream;Ljava/util/jar/Manifest;)V
33: aload 3
ifnull 35
34: aload 3
invokevirtual java.io.InputStream.close:()V
35: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.io.OutputStream.close:()V
end local 4 end local 3 end local 2 36: goto 113
StackMap locals:
StackMap stack:
37: aload 0
getfield sun.tools.jar.Main.uflag:Z
ifeq 70
38: aconst_null
astore 2
start local 2 39: aconst_null
astore 3
start local 3 40: aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnull 46
41: new java.io.File
dup
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 2
42: aload 2
invokestatic sun.tools.jar.Main.createTempFileInSameDirectoryAs:(Ljava/io/File;)Ljava/io/File;
astore 3
43: new java.io.FileInputStream
dup
aload 2
invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
astore 4
start local 4 44: new java.io.FileOutputStream
dup
aload 3
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
astore 5
start local 5 45: goto 49
end local 5 end local 4 46: StackMap locals: java.io.File java.io.File
StackMap stack:
new java.io.FileInputStream
dup
getstatic java.io.FileDescriptor.in:Ljava/io/FileDescriptor;
invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
astore 4
start local 4 47: new java.io.FileOutputStream
dup
getstatic java.io.FileDescriptor.out:Ljava/io/FileDescriptor;
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/FileDescriptor;)V
astore 5
start local 5 48: aload 0
iconst_0
putfield sun.tools.jar.Main.vflag:Z
49: StackMap locals: java.io.FileInputStream java.io.FileOutputStream
StackMap stack:
aload 0
getfield sun.tools.jar.Main.Mflag:Z
ifne 51
aload 0
getfield sun.tools.jar.Main.mname:Ljava/lang/String;
ifnull 51
50: new java.io.FileInputStream
dup
aload 0
getfield sun.tools.jar.Main.mname:Ljava/lang/String;
invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
goto 52
StackMap locals:
StackMap stack:
51: aconst_null
52: StackMap locals:
StackMap stack: java.io.FileInputStream
astore 6
start local 6 53: aload 0
aconst_null
aload 0
getfield sun.tools.jar.Main.files:[Ljava/lang/String;
iconst_1
invokevirtual sun.tools.jar.Main.expand:(Ljava/io/File;[Ljava/lang/String;Z)V
54: aload 0
aload 4
new java.io.BufferedOutputStream
dup
aload 5
invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
55: aload 6
aconst_null
56: invokevirtual sun.tools.jar.Main.update:(Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Lsun/misc/JarIndex;)Z
istore 7
start local 7 57: aload 0
getfield sun.tools.jar.Main.ok:Z
ifeq 59
58: aload 0
iload 7
putfield sun.tools.jar.Main.ok:Z
59: StackMap locals: java.io.InputStream int
StackMap stack:
aload 4
invokevirtual java.io.FileInputStream.close:()V
60: aload 5
invokevirtual java.io.FileOutputStream.close:()V
61: aload 6
ifnull 63
62: aload 6
invokevirtual java.io.InputStream.close:()V
63: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnull 113
64: aload 2
invokevirtual java.io.File.delete:()Z
pop
65: aload 3
aload 2
invokevirtual java.io.File.renameTo:(Ljava/io/File;)Z
ifne 68
66: aload 3
invokevirtual java.io.File.delete:()Z
pop
67: new java.io.IOException
dup
aload 0
ldc "error.write.file"
invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
68: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.io.File.delete:()Z
pop
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 69: goto 113
StackMap locals: sun.tools.jar.Main java.lang.String[]
StackMap stack:
70: aload 0
getfield sun.tools.jar.Main.tflag:Z
ifeq 83
71: aload 0
aload 0
getfield sun.tools.jar.Main.files:[Ljava/lang/String;
invokevirtual sun.tools.jar.Main.replaceFSC:([Ljava/lang/String;)V
72: aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnull 75
73: aload 0
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
aload 0
getfield sun.tools.jar.Main.files:[Ljava/lang/String;
invokevirtual sun.tools.jar.Main.list:(Ljava/lang/String;[Ljava/lang/String;)V
74: goto 113
75: StackMap locals:
StackMap stack:
new java.io.FileInputStream
dup
getstatic java.io.FileDescriptor.in:Ljava/io/FileDescriptor;
invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
astore 2
start local 2 76: aload 0
new java.io.BufferedInputStream
dup
aload 2
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
aload 0
getfield sun.tools.jar.Main.files:[Ljava/lang/String;
invokevirtual sun.tools.jar.Main.list:(Ljava/io/InputStream;[Ljava/lang/String;)V
77: goto 81
StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.InputStream
StackMap stack: java.lang.Throwable
78: astore 3
79: aload 2
invokevirtual java.io.InputStream.close:()V
80: aload 3
athrow
81: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.io.InputStream.close:()V
end local 2 82: goto 113
StackMap locals:
StackMap stack:
83: aload 0
getfield sun.tools.jar.Main.xflag:Z
ifeq 99
84: aload 0
aload 0
getfield sun.tools.jar.Main.files:[Ljava/lang/String;
invokevirtual sun.tools.jar.Main.replaceFSC:([Ljava/lang/String;)V
85: aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnull 88
aload 0
getfield sun.tools.jar.Main.files:[Ljava/lang/String;
ifnull 88
86: aload 0
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
aload 0
getfield sun.tools.jar.Main.files:[Ljava/lang/String;
invokevirtual sun.tools.jar.Main.extract:(Ljava/lang/String;[Ljava/lang/String;)V
87: goto 113
88: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnonnull 90
89: new java.io.FileInputStream
dup
getstatic java.io.FileDescriptor.in:Ljava/io/FileDescriptor;
invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
goto 91
90: StackMap locals:
StackMap stack:
new java.io.FileInputStream
dup
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
91: StackMap locals:
StackMap stack: java.io.FileInputStream
astore 2
start local 2 92: aload 0
new java.io.BufferedInputStream
dup
aload 2
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
aload 0
getfield sun.tools.jar.Main.files:[Ljava/lang/String;
invokevirtual sun.tools.jar.Main.extract:(Ljava/io/InputStream;[Ljava/lang/String;)V
93: goto 97
StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.InputStream
StackMap stack: java.lang.Throwable
94: astore 3
95: aload 2
invokevirtual java.io.InputStream.close:()V
96: aload 3
athrow
97: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.io.InputStream.close:()V
end local 2 98: goto 113
StackMap locals:
StackMap stack:
99: aload 0
getfield sun.tools.jar.Main.iflag:Z
ifeq 113
100: aload 0
aload 0
getfield sun.tools.jar.Main.rootjar:Ljava/lang/String;
aload 0
getfield sun.tools.jar.Main.files:[Ljava/lang/String;
invokevirtual sun.tools.jar.Main.genIndex:(Ljava/lang/String;[Ljava/lang/String;)V
101: goto 113
StackMap locals:
StackMap stack: java.io.IOException
102: astore 2
start local 2 103: aload 0
aload 2
invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
104: aload 0
iconst_0
putfield sun.tools.jar.Main.ok:Z
end local 2 105: goto 113
106: StackMap locals:
StackMap stack: java.lang.Error
astore 2
start local 2 107: aload 2
invokevirtual java.lang.Error.printStackTrace:()V
108: aload 0
iconst_0
putfield sun.tools.jar.Main.ok:Z
end local 2 109: goto 113
110: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
start local 2 111: aload 2
invokevirtual java.lang.Throwable.printStackTrace:()V
112: aload 0
iconst_0
putfield sun.tools.jar.Main.ok:Z
end local 2 113: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.flush:()V
114: aload 0
getfield sun.tools.jar.Main.err:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.flush:()V
115: aload 0
getfield sun.tools.jar.Main.ok:Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 116 0 this Lsun/tools/jar/Main;
0 116 1 args [Ljava/lang/String;
10 36 2 manifest Ljava/util/jar/Manifest;
11 36 3 in Ljava/io/InputStream;
28 29 4 out Ljava/io/OutputStream;
30 36 4 out Ljava/io/OutputStream;
39 69 2 inputFile Ljava/io/File;
40 69 3 tmpFile Ljava/io/File;
44 46 4 in Ljava/io/FileInputStream;
47 69 4 in Ljava/io/FileInputStream;
45 46 5 out Ljava/io/FileOutputStream;
48 69 5 out Ljava/io/FileOutputStream;
53 69 6 manifest Ljava/io/InputStream;
57 69 7 updateOk Z
76 82 2 in Ljava/io/InputStream;
92 98 2 in Ljava/io/InputStream;
103 105 2 e Ljava/io/IOException;
107 109 2 ee Ljava/lang/Error;
111 113 2 t Ljava/lang/Throwable;
Exception table:
from to target type
76 78 78 any
92 94 94 any
3 22 102 Class java.io.IOException
23 101 102 Class java.io.IOException
3 22 106 Class java.lang.Error
23 101 106 Class java.lang.Error
3 22 110 Class java.lang.Throwable
23 101 110 Class java.lang.Throwable
MethodParameters:
Name Flags
args
boolean parseArgs(java.lang.String[]);
descriptor: ([Ljava/lang/String;)Z
flags: (0x0000)
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 1
invokestatic sun.tools.jar.CommandLine.parse:([Ljava/lang/String;)[Ljava/lang/String;
astore 1
1: goto 8
StackMap locals:
StackMap stack: java.io.FileNotFoundException
2: astore 2
start local 2 3: aload 0
aload 0
ldc "error.cant.open"
aload 2
invokevirtual java.io.FileNotFoundException.getMessage:()Ljava/lang/String;
invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/String;)V
4: iconst_0
ireturn
end local 2 5: StackMap locals:
StackMap stack: java.io.IOException
astore 2
start local 2 6: aload 0
aload 2
invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
7: iconst_0
ireturn
end local 2 8: StackMap locals:
StackMap stack:
iconst_1
istore 2
start local 2 9: aload 1
iconst_0
aaload
astore 3
start local 3 10: aload 3
ldc "-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 12
11: aload 3
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 3
12: StackMap locals: int java.lang.String
StackMap stack:
iconst_0
istore 4
start local 4 13: goto 61
14: StackMap locals: int
StackMap stack:
aload 3
iload 4
invokevirtual java.lang.String.charAt:(I)C
lookupswitch { // 12
48: 43
77: 35
80: 53
99: 15
101: 51
102: 39
105: 45
109: 41
116: 30
117: 20
118: 37
120: 25
default: 55
}
15: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.xflag:Z
ifne 16
aload 0
getfield sun.tools.jar.Main.tflag:Z
ifne 16
aload 0
getfield sun.tools.jar.Main.uflag:Z
ifne 16
aload 0
getfield sun.tools.jar.Main.iflag:Z
ifeq 18
16: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.tools.jar.Main.usageError:()V
17: iconst_0
ireturn
18: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.tools.jar.Main.cflag:Z
19: goto 60
20: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.cflag:Z
ifne 21
aload 0
getfield sun.tools.jar.Main.xflag:Z
ifne 21
aload 0
getfield sun.tools.jar.Main.tflag:Z
ifne 21
aload 0
getfield sun.tools.jar.Main.iflag:Z
ifeq 23
21: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.tools.jar.Main.usageError:()V
22: iconst_0
ireturn
23: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.tools.jar.Main.uflag:Z
24: goto 60
25: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.cflag:Z
ifne 26
aload 0
getfield sun.tools.jar.Main.uflag:Z
ifne 26
aload 0
getfield sun.tools.jar.Main.tflag:Z
ifne 26
aload 0
getfield sun.tools.jar.Main.iflag:Z
ifeq 28
26: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.tools.jar.Main.usageError:()V
27: iconst_0
ireturn
28: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.tools.jar.Main.xflag:Z
29: goto 60
30: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.cflag:Z
ifne 31
aload 0
getfield sun.tools.jar.Main.uflag:Z
ifne 31
aload 0
getfield sun.tools.jar.Main.xflag:Z
ifne 31
aload 0
getfield sun.tools.jar.Main.iflag:Z
ifeq 33
31: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.tools.jar.Main.usageError:()V
32: iconst_0
ireturn
33: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.tools.jar.Main.tflag:Z
34: goto 60
35: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.tools.jar.Main.Mflag:Z
36: goto 60
37: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.tools.jar.Main.vflag:Z
38: goto 60
39: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iinc 2 1
aaload
putfield sun.tools.jar.Main.fname:Ljava/lang/String;
40: goto 60
41: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iinc 2 1
aaload
putfield sun.tools.jar.Main.mname:Ljava/lang/String;
42: goto 60
43: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.tools.jar.Main.flag0:Z
44: goto 60
45: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.cflag:Z
ifne 46
aload 0
getfield sun.tools.jar.Main.uflag:Z
ifne 46
aload 0
getfield sun.tools.jar.Main.xflag:Z
ifne 46
aload 0
getfield sun.tools.jar.Main.tflag:Z
ifeq 48
46: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.tools.jar.Main.usageError:()V
47: iconst_0
ireturn
48: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iinc 2 1
aaload
putfield sun.tools.jar.Main.rootjar:Ljava/lang/String;
49: aload 0
iconst_1
putfield sun.tools.jar.Main.iflag:Z
50: goto 60
51: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iinc 2 1
aaload
putfield sun.tools.jar.Main.ename:Ljava/lang/String;
52: goto 60
53: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.tools.jar.Main.pflag:Z
54: goto 60
55: StackMap locals:
StackMap stack:
aload 0
aload 0
ldc "error.illegal.option"
56: aload 3
iload 4
invokevirtual java.lang.String.charAt:(I)C
invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
57: invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
58: aload 0
invokevirtual sun.tools.jar.Main.usageError:()V
59: iconst_0
ireturn
60: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
61: iload 4
aload 3
invokevirtual java.lang.String.length:()I
if_icmplt 14
end local 4 end local 3 62: goto 66
StackMap locals: sun.tools.jar.Main java.lang.String[] int
StackMap stack: java.lang.ArrayIndexOutOfBoundsException
63: pop
64: aload 0
invokevirtual sun.tools.jar.Main.usageError:()V
65: iconst_0
ireturn
66: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.cflag:Z
ifne 70
aload 0
getfield sun.tools.jar.Main.tflag:Z
ifne 70
aload 0
getfield sun.tools.jar.Main.xflag:Z
ifne 70
aload 0
getfield sun.tools.jar.Main.uflag:Z
ifne 70
aload 0
getfield sun.tools.jar.Main.iflag:Z
ifne 70
67: aload 0
aload 0
ldc "error.bad.option"
invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
68: aload 0
invokevirtual sun.tools.jar.Main.usageError:()V
69: iconst_0
ireturn
70: StackMap locals:
StackMap stack:
aload 1
arraylength
iload 2
isub
istore 3
start local 3 71: iload 3
ifle 99
72: iconst_0
istore 4
start local 4 73: iload 3
anewarray java.lang.String
astore 5
start local 5 74: iload 2
istore 6
start local 6 75: goto 91
76: StackMap locals: sun.tools.jar.Main java.lang.String[] int int int java.lang.String[] int
StackMap stack:
aload 1
iload 6
aaload
ldc "-C"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 89
77: aload 1
iinc 6 1
iload 6
aaload
astore 7
start local 7 78: aload 7
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 80
79: aload 7
goto 81
StackMap locals: java.lang.String
StackMap stack:
80: new java.lang.StringBuilder
dup
aload 7
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
81: StackMap locals:
StackMap stack: java.lang.String
astore 7
82: aload 7
getstatic java.io.File.separatorChar:C
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 7
83: goto 85
84: StackMap locals:
StackMap stack:
aload 7
ldc "//"
ldc "/"
invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
astore 7
85: StackMap locals:
StackMap stack:
aload 7
ldc "//"
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
iconst_m1
if_icmpgt 84
86: aload 0
getfield sun.tools.jar.Main.paths:Ljava/util/Set;
aload 7
getstatic java.io.File.separatorChar:C
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
87: aload 5
iload 4
iinc 4 1
new java.lang.StringBuilder
dup
aload 7
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
iinc 6 1
iload 6
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
end local 7 88: goto 90
89: StackMap locals:
StackMap stack:
aload 5
iload 4
iinc 4 1
aload 1
iload 6
aaload
aastore
90: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
91: iload 6
aload 1
arraylength
if_icmplt 76
end local 6 92: goto 96
StackMap locals: sun.tools.jar.Main java.lang.String[] int int int java.lang.String[]
StackMap stack: java.lang.ArrayIndexOutOfBoundsException
93: pop
94: aload 0
invokevirtual sun.tools.jar.Main.usageError:()V
95: iconst_0
ireturn
96: StackMap locals:
StackMap stack:
aload 0
iload 4
anewarray java.lang.String
putfield sun.tools.jar.Main.files:[Ljava/lang/String;
97: aload 5
iconst_0
aload 0
getfield sun.tools.jar.Main.files:[Ljava/lang/String;
iconst_0
iload 4
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
end local 5 end local 4 98: goto 109
StackMap locals:
StackMap stack:
99: aload 0
getfield sun.tools.jar.Main.cflag:Z
ifeq 103
aload 0
getfield sun.tools.jar.Main.mname:Ljava/lang/String;
ifnonnull 103
100: aload 0
aload 0
ldc "error.bad.cflag"
invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
101: aload 0
invokevirtual sun.tools.jar.Main.usageError:()V
102: iconst_0
ireturn
103: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.uflag:Z
ifeq 109
104: aload 0
getfield sun.tools.jar.Main.mname:Ljava/lang/String;
ifnonnull 105
aload 0
getfield sun.tools.jar.Main.ename:Ljava/lang/String;
ifnull 106
105: StackMap locals:
StackMap stack:
iconst_1
ireturn
106: StackMap locals:
StackMap stack:
aload 0
aload 0
ldc "error.bad.uflag"
invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
107: aload 0
invokevirtual sun.tools.jar.Main.usageError:()V
108: iconst_0
ireturn
109: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 110 0 this Lsun/tools/jar/Main;
0 110 1 args [Ljava/lang/String;
3 5 2 e Ljava/io/FileNotFoundException;
6 8 2 e Ljava/io/IOException;
9 110 2 count I
10 62 3 flags Ljava/lang/String;
13 62 4 i I
71 110 3 n I
73 98 4 k I
74 98 5 nameBuf [Ljava/lang/String;
75 92 6 i I
78 88 7 dir Ljava/lang/String;
Exception table:
from to target type
0 1 2 Class java.io.FileNotFoundException
0 1 5 Class java.io.IOException
9 17 63 Class java.lang.ArrayIndexOutOfBoundsException
18 22 63 Class java.lang.ArrayIndexOutOfBoundsException
23 27 63 Class java.lang.ArrayIndexOutOfBoundsException
28 32 63 Class java.lang.ArrayIndexOutOfBoundsException
33 47 63 Class java.lang.ArrayIndexOutOfBoundsException
48 59 63 Class java.lang.ArrayIndexOutOfBoundsException
60 62 63 Class java.lang.ArrayIndexOutOfBoundsException
74 92 93 Class java.lang.ArrayIndexOutOfBoundsException
MethodParameters:
Name Flags
args
void expand(java.io.File, java.lang.String[], boolean);
descriptor: (Ljava/io/File;[Ljava/lang/String;Z)V
flags: (0x0000)
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 3: goto 26
4: StackMap locals: int
StackMap stack:
aload 1
ifnonnull 7
5: new java.io.File
dup
aload 2
iload 4
aaload
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 5
start local 5 6: goto 8
end local 5 7: StackMap locals:
StackMap stack:
new java.io.File
dup
aload 1
aload 2
iload 4
aaload
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 5
start local 5 8: StackMap locals: java.io.File
StackMap stack:
aload 5
invokevirtual java.io.File.isFile:()Z
ifeq 13
9: aload 0
getfield sun.tools.jar.Main.entries:Ljava/util/Set;
aload 5
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
ifeq 25
10: iload 3
ifeq 25
11: aload 0
getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
aload 0
aload 5
invokevirtual java.io.File.getPath:()Ljava/lang/String;
invokevirtual sun.tools.jar.Main.entryName:(Ljava/lang/String;)Ljava/lang/String;
aload 5
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: goto 25
StackMap locals:
StackMap stack:
13: aload 5
invokevirtual java.io.File.isDirectory:()Z
ifeq 23
14: aload 0
getfield sun.tools.jar.Main.entries:Ljava/util/Set;
aload 5
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
ifeq 25
15: iload 3
ifeq 21
16: aload 5
invokevirtual java.io.File.getPath:()Ljava/lang/String;
astore 6
start local 6 17: aload 6
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 18
aload 6
goto 19
18: StackMap locals: java.lang.String
StackMap stack:
new java.lang.StringBuilder
dup
aload 6
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
19: StackMap locals:
StackMap stack: java.lang.String
astore 6
20: aload 0
getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
aload 0
aload 6
invokevirtual sun.tools.jar.Main.entryName:(Ljava/lang/String;)Ljava/lang/String;
aload 5
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 6 21: StackMap locals:
StackMap stack:
aload 0
aload 5
aload 5
invokevirtual java.io.File.list:()[Ljava/lang/String;
iload 3
invokevirtual sun.tools.jar.Main.expand:(Ljava/io/File;[Ljava/lang/String;Z)V
22: goto 25
23: StackMap locals:
StackMap stack:
aload 0
aload 0
ldc "error.nosuch.fileordir"
aload 5
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
24: aload 0
iconst_0
putfield sun.tools.jar.Main.ok:Z
end local 5 25: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
26: iload 4
aload 2
arraylength
if_icmplt 4
end local 4 27: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lsun/tools/jar/Main;
0 28 1 dir Ljava/io/File;
0 28 2 files [Ljava/lang/String;
0 28 3 isUpdate Z
3 27 4 i I
6 7 5 f Ljava/io/File;
8 25 5 f Ljava/io/File;
17 21 6 dirPath Ljava/lang/String;
MethodParameters:
Name Flags
dir
files
isUpdate
void create(java.io.OutputStream, java.util.jar.Manifest);
descriptor: (Ljava/io/OutputStream;Ljava/util/jar/Manifest;)V
flags: (0x0000)
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: new java.util.jar.JarOutputStream
dup
aload 1
invokespecial java.util.jar.JarOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 3
start local 3 1: aload 0
getfield sun.tools.jar.Main.flag0:Z
ifeq 3
2: aload 3
iconst_0
invokevirtual java.util.zip.ZipOutputStream.setMethod:(I)V
3: StackMap locals: java.util.zip.ZipOutputStream
StackMap stack:
aload 2
ifnull 18
4: aload 0
getfield sun.tools.jar.Main.vflag:Z
ifeq 6
5: aload 0
aload 0
ldc "out.added.manifest"
invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
6: StackMap locals:
StackMap stack:
new java.util.zip.ZipEntry
dup
ldc "META-INF/"
invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
astore 4
start local 4 7: aload 4
invokestatic java.lang.System.currentTimeMillis:()J
invokevirtual java.util.zip.ZipEntry.setTime:(J)V
8: aload 4
lconst_0
invokevirtual java.util.zip.ZipEntry.setSize:(J)V
9: aload 4
lconst_0
invokevirtual java.util.zip.ZipEntry.setCrc:(J)V
10: aload 3
aload 4
invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
11: new java.util.zip.ZipEntry
dup
ldc "META-INF/MANIFEST.MF"
invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
astore 4
12: aload 4
invokestatic java.lang.System.currentTimeMillis:()J
invokevirtual java.util.zip.ZipEntry.setTime:(J)V
13: aload 0
getfield sun.tools.jar.Main.flag0:Z
ifeq 15
14: aload 0
aload 4
aload 2
invokevirtual sun.tools.jar.Main.crc32Manifest:(Ljava/util/zip/ZipEntry;Ljava/util/jar/Manifest;)V
15: StackMap locals: java.util.zip.ZipEntry
StackMap stack:
aload 3
aload 4
invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
16: aload 2
aload 3
invokevirtual java.util.jar.Manifest.write:(Ljava/io/OutputStream;)V
17: aload 3
invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
end local 4 18: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.entries:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 21
StackMap locals: sun.tools.jar.Main java.io.OutputStream java.util.jar.Manifest java.util.zip.ZipOutputStream top java.util.Iterator
StackMap stack:
19: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.io.File
astore 4
start local 4 20: aload 0
aload 3
aload 4
invokevirtual sun.tools.jar.Main.addFile:(Ljava/util/zip/ZipOutputStream;Ljava/io/File;)V
end local 4 21: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 19
22: aload 3
invokevirtual java.util.zip.ZipOutputStream.close:()V
23: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lsun/tools/jar/Main;
0 24 1 out Ljava/io/OutputStream;
0 24 2 manifest Ljava/util/jar/Manifest;
1 24 3 zos Ljava/util/zip/ZipOutputStream;
7 18 4 e Ljava/util/zip/ZipEntry;
20 21 4 file Ljava/io/File;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
out
manifest
private char toUpperCaseASCII(char);
descriptor: (C)C
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
bipush 97
if_icmplt 1
iload 1
bipush 122
if_icmple 2
StackMap locals:
StackMap stack:
1: iload 1
goto 3
StackMap locals:
StackMap stack:
2: iload 1
bipush 65
iadd
bipush 97
isub
i2c
StackMap locals:
StackMap stack: int
3: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/tools/jar/Main;
0 4 1 c C
MethodParameters:
Name Flags
c
private boolean equalsIgnoreCase(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=7, args_size=3
start local 0 start local 1 start local 2 0: getstatic sun.tools.jar.Main.$assertionsDisabled:Z
ifne 1
aload 2
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
aload 2
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.String.length:()I
dup
istore 3
start local 3 2: aload 2
invokevirtual java.lang.String.length:()I
if_icmpeq 4
3: iconst_0
ireturn
4: StackMap locals: int
StackMap stack:
iconst_0
istore 4
start local 4 5: goto 11
6: StackMap locals: int
StackMap stack:
aload 1
iload 4
invokevirtual java.lang.String.charAt:(I)C
istore 5
start local 5 7: aload 2
iload 4
invokevirtual java.lang.String.charAt:(I)C
istore 6
start local 6 8: iload 5
iload 6
if_icmpeq 10
aload 0
iload 5
invokevirtual sun.tools.jar.Main.toUpperCaseASCII:(C)C
iload 6
if_icmpeq 10
9: iconst_0
ireturn
end local 6 end local 5 10: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
11: iload 4
iload 3
if_icmplt 6
end local 4 12: iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/tools/jar/Main;
0 13 1 s Ljava/lang/String;
0 13 2 upper Ljava/lang/String;
2 13 3 len I
5 12 4 i I
7 10 5 c1 C
8 10 6 c2 C
MethodParameters:
Name Flags
s
upper
boolean update(java.io.InputStream, java.io.OutputStream, java.io.InputStream, sun.misc.JarIndex);
descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Lsun/misc/JarIndex;)Z
flags: (0x0000)
Code:
stack=4, locals=14, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: new java.util.zip.ZipInputStream
dup
aload 1
invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
astore 5
start local 5 1: new java.util.jar.JarOutputStream
dup
aload 2
invokespecial java.util.jar.JarOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 6
start local 6 2: aconst_null
astore 7
start local 7 3: iconst_0
istore 8
start local 8 4: iconst_1
istore 9
start local 9 5: aload 4
ifnull 43
6: aload 0
aload 4
aload 6
invokevirtual sun.tools.jar.Main.addIndex:(Lsun/misc/JarIndex;Ljava/util/zip/ZipOutputStream;)V
7: goto 43
8: StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream sun.misc.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int
StackMap stack:
aload 7
invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
astore 10
start local 10 9: aload 0
aload 10
ldc "META-INF/MANIFEST.MF"
invokevirtual sun.tools.jar.Main.equalsIgnoreCase:(Ljava/lang/String;Ljava/lang/String;)Z
istore 11
start local 11 10: aload 4
ifnull 11
aload 0
aload 10
ldc "META-INF/INDEX.LIST"
invokevirtual sun.tools.jar.Main.equalsIgnoreCase:(Ljava/lang/String;Ljava/lang/String;)Z
ifne 43
11: StackMap locals: java.lang.String int
StackMap stack:
aload 0
getfield sun.tools.jar.Main.Mflag:Z
ifeq 13
iload 11
ifeq 13
12: goto 43
13: StackMap locals:
StackMap stack:
iload 11
ifeq 27
aload 3
ifnonnull 15
14: aload 0
getfield sun.tools.jar.Main.ename:Ljava/lang/String;
ifnull 27
15: StackMap locals:
StackMap stack:
iconst_1
istore 8
16: aload 3
ifnull 22
17: new java.io.FileInputStream
dup
aload 0
getfield sun.tools.jar.Main.mname:Ljava/lang/String;
invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
astore 12
start local 12 18: aload 0
new java.util.jar.Manifest
dup
aload 12
invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
invokevirtual sun.tools.jar.Main.isAmbiguousMainClass:(Ljava/util/jar/Manifest;)Z
istore 13
start local 13 19: aload 12
invokevirtual java.io.FileInputStream.close:()V
20: iload 13
ifeq 22
21: iconst_0
ireturn
end local 13 end local 12 22: StackMap locals:
StackMap stack:
new java.util.jar.Manifest
dup
aload 5
invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
astore 12
start local 12 23: aload 3
ifnull 25
24: aload 12
aload 3
invokevirtual java.util.jar.Manifest.read:(Ljava/io/InputStream;)V
25: StackMap locals: java.util.jar.Manifest
StackMap stack:
aload 0
aload 12
aload 6
invokevirtual sun.tools.jar.Main.updateManifest:(Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)V
end local 12 26: goto 43
27: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
aload 10
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 39
28: new java.util.zip.ZipEntry
dup
aload 10
invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
astore 12
start local 12 29: aload 12
aload 7
invokevirtual java.util.zip.ZipEntry.getMethod:()I
invokevirtual java.util.zip.ZipEntry.setMethod:(I)V
30: aload 12
aload 7
invokevirtual java.util.zip.ZipEntry.getTime:()J
invokevirtual java.util.zip.ZipEntry.setTime:(J)V
31: aload 12
aload 7
invokevirtual java.util.zip.ZipEntry.getComment:()Ljava/lang/String;
invokevirtual java.util.zip.ZipEntry.setComment:(Ljava/lang/String;)V
32: aload 12
aload 7
invokevirtual java.util.zip.ZipEntry.getExtra:()[B
invokevirtual java.util.zip.ZipEntry.setExtra:([B)V
33: aload 7
invokevirtual java.util.zip.ZipEntry.getMethod:()I
ifne 36
34: aload 12
aload 7
invokevirtual java.util.zip.ZipEntry.getSize:()J
invokevirtual java.util.zip.ZipEntry.setSize:(J)V
35: aload 12
aload 7
invokevirtual java.util.zip.ZipEntry.getCrc:()J
invokevirtual java.util.zip.ZipEntry.setCrc:(J)V
36: StackMap locals: java.util.zip.ZipEntry
StackMap stack:
aload 6
aload 12
invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
37: aload 0
aload 5
aload 6
invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
end local 12 38: goto 43
39: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
aload 10
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.io.File
astore 12
start local 12 40: aload 0
aload 6
aload 12
invokevirtual sun.tools.jar.Main.addFile:(Ljava/util/zip/ZipOutputStream;Ljava/io/File;)V
41: aload 0
getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
aload 10
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
42: aload 0
getfield sun.tools.jar.Main.entries:Ljava/util/Set;
aload 12
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
end local 12 end local 11 end local 10 43: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
dup
astore 7
ifnonnull 8
44: aload 0
getfield sun.tools.jar.Main.entries:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 11
goto 47
StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream sun.misc.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int top java.util.Iterator
StackMap stack:
45: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.io.File
astore 10
start local 10 46: aload 0
aload 6
aload 10
invokevirtual sun.tools.jar.Main.addFile:(Ljava/util/zip/ZipOutputStream;Ljava/io/File;)V
end local 10 47: StackMap locals:
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 45
48: iload 8
ifne 59
49: aload 3
ifnull 57
50: new java.util.jar.Manifest
dup
aload 3
invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
astore 10
start local 10 51: aload 0
aload 10
invokevirtual sun.tools.jar.Main.isAmbiguousMainClass:(Ljava/util/jar/Manifest;)Z
ifeq 52
iconst_0
goto 53
StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream sun.misc.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int java.util.jar.Manifest
StackMap stack:
52: iconst_1
StackMap locals:
StackMap stack: int
53: istore 9
54: iload 9
ifeq 59
55: aload 0
aload 10
aload 6
invokevirtual sun.tools.jar.Main.updateManifest:(Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)V
end local 10 56: goto 59
StackMap locals:
StackMap stack:
57: aload 0
getfield sun.tools.jar.Main.ename:Ljava/lang/String;
ifnull 59
58: aload 0
new java.util.jar.Manifest
dup
invokespecial java.util.jar.Manifest.<init>:()V
aload 6
invokevirtual sun.tools.jar.Main.updateManifest:(Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)V
59: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.util.zip.ZipInputStream.close:()V
60: aload 6
invokevirtual java.util.zip.ZipOutputStream.close:()V
61: iload 9
ireturn
end local 9 end local 8 end local 7 end local 6 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 62 0 this Lsun/tools/jar/Main;
0 62 1 in Ljava/io/InputStream;
0 62 2 out Ljava/io/OutputStream;
0 62 3 newManifest Ljava/io/InputStream;
0 62 4 jarIndex Lsun/misc/JarIndex;
1 62 5 zis Ljava/util/zip/ZipInputStream;
2 62 6 zos Ljava/util/zip/ZipOutputStream;
3 62 7 e Ljava/util/zip/ZipEntry;
4 62 8 foundManifest Z
5 62 9 updateOk Z
9 43 10 name Ljava/lang/String;
10 43 11 isManifestEntry Z
18 22 12 fis Ljava/io/FileInputStream;
19 22 13 ambiguous Z
23 26 12 old Ljava/util/jar/Manifest;
29 38 12 e2 Ljava/util/zip/ZipEntry;
40 43 12 f Ljava/io/File;
46 47 10 f Ljava/io/File;
51 56 10 m Ljava/util/jar/Manifest;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
in
out
newManifest
jarIndex
private void addIndex(sun.misc.JarIndex, java.util.zip.ZipOutputStream);
descriptor: (Lsun/misc/JarIndex;Ljava/util/zip/ZipOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: new java.util.zip.ZipEntry
dup
ldc "META-INF/INDEX.LIST"
invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
astore 3
start local 3 1: aload 3
invokestatic java.lang.System.currentTimeMillis:()J
invokevirtual java.util.zip.ZipEntry.setTime:(J)V
2: aload 0
getfield sun.tools.jar.Main.flag0:Z
ifeq 6
3: new sun.tools.jar.Main$CRC32OutputStream
dup
invokespecial sun.tools.jar.Main$CRC32OutputStream.<init>:()V
astore 4
start local 4 4: aload 1
aload 4
invokevirtual sun.misc.JarIndex.write:(Ljava/io/OutputStream;)V
5: aload 4
aload 3
invokevirtual sun.tools.jar.Main$CRC32OutputStream.updateEntry:(Ljava/util/zip/ZipEntry;)V
end local 4 6: StackMap locals: java.util.zip.ZipEntry
StackMap stack:
aload 2
aload 3
invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
7: aload 1
aload 2
invokevirtual sun.misc.JarIndex.write:(Ljava/io/OutputStream;)V
8: aload 2
invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/tools/jar/Main;
0 10 1 index Lsun/misc/JarIndex;
0 10 2 zos Ljava/util/zip/ZipOutputStream;
1 10 3 e Ljava/util/zip/ZipEntry;
4 6 4 os Lsun/tools/jar/Main$CRC32OutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
index
zos
private void updateManifest(java.util.jar.Manifest, java.util.zip.ZipOutputStream);
descriptor: (Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual sun.tools.jar.Main.addVersion:(Ljava/util/jar/Manifest;)V
1: aload 0
aload 1
invokevirtual sun.tools.jar.Main.addCreatedBy:(Ljava/util/jar/Manifest;)V
2: aload 0
getfield sun.tools.jar.Main.ename:Ljava/lang/String;
ifnull 4
3: aload 0
aload 1
aload 0
getfield sun.tools.jar.Main.ename:Ljava/lang/String;
invokevirtual sun.tools.jar.Main.addMainClass:(Ljava/util/jar/Manifest;Ljava/lang/String;)V
4: StackMap locals:
StackMap stack:
new java.util.zip.ZipEntry
dup
ldc "META-INF/MANIFEST.MF"
invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
astore 3
start local 3 5: aload 3
invokestatic java.lang.System.currentTimeMillis:()J
invokevirtual java.util.zip.ZipEntry.setTime:(J)V
6: aload 0
getfield sun.tools.jar.Main.flag0:Z
ifeq 8
7: aload 0
aload 3
aload 1
invokevirtual sun.tools.jar.Main.crc32Manifest:(Ljava/util/zip/ZipEntry;Ljava/util/jar/Manifest;)V
8: StackMap locals: java.util.zip.ZipEntry
StackMap stack:
aload 2
aload 3
invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
9: aload 1
aload 2
invokevirtual java.util.jar.Manifest.write:(Ljava/io/OutputStream;)V
10: aload 0
getfield sun.tools.jar.Main.vflag:Z
ifeq 12
11: aload 0
aload 0
ldc "out.update.manifest"
invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
12: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/tools/jar/Main;
0 13 1 m Ljava/util/jar/Manifest;
0 13 2 zos Ljava/util/zip/ZipOutputStream;
5 13 3 e Ljava/util/zip/ZipEntry;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
m
zos
private static final boolean isWinDriveLetter(char);
descriptor: (C)Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
bipush 97
if_icmplt 1
iload 0
bipush 122
if_icmple 3
StackMap locals:
StackMap stack:
1: iload 0
bipush 65
if_icmplt 2
iload 0
bipush 90
if_icmple 3
StackMap locals:
StackMap stack:
2: iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 c C
MethodParameters:
Name Flags
c
private java.lang.String safeName(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.tools.jar.Main.pflag:Z
ifne 25
1: aload 1
invokevirtual java.lang.String.length:()I
istore 2
start local 2 2: aload 1
ldc "../"
invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
istore 3
start local 3 3: iload 3
iconst_m1
if_icmpne 6
4: iconst_0
istore 3
5: goto 7
6: StackMap locals: int int
StackMap stack:
iinc 3 3
7: StackMap locals:
StackMap stack:
getstatic java.io.File.separatorChar:C
bipush 92
if_icmpne 22
8: goto 19
9: StackMap locals:
StackMap stack:
iload 3
istore 4
start local 4 10: iload 3
iconst_1
iadd
iload 2
if_icmpge 16
11: aload 1
iload 3
iconst_1
iadd
invokevirtual java.lang.String.charAt:(I)C
bipush 58
if_icmpne 16
12: aload 1
iload 3
invokevirtual java.lang.String.charAt:(I)C
invokestatic sun.tools.jar.Main.isWinDriveLetter:(C)Z
ifeq 16
13: iinc 3 2
14: goto 16
15: StackMap locals: int
StackMap stack:
iinc 3 1
16: StackMap locals:
StackMap stack:
iload 3
iload 2
if_icmpge 17
aload 1
iload 3
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpeq 15
17: StackMap locals:
StackMap stack:
iload 3
iload 4
if_icmpne 19
18: goto 23
end local 4 19: StackMap locals:
StackMap stack:
iload 3
iload 2
if_icmplt 9
20: goto 23
21: StackMap locals:
StackMap stack:
iinc 3 1
22: StackMap locals:
StackMap stack:
iload 3
iload 2
if_icmpge 23
aload 1
iload 3
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpeq 21
23: StackMap locals:
StackMap stack:
iload 3
ifeq 25
24: aload 1
iload 3
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 1
end local 3 end local 2 25: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lsun/tools/jar/Main;
0 26 1 name Ljava/lang/String;
2 25 2 len I
3 25 3 i I
10 19 4 off I
MethodParameters:
Name Flags
name
private java.lang.String entryName(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 1
getstatic java.io.File.separatorChar:C
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 1
1: ldc ""
astore 2
start local 2 2: aload 0
getfield sun.tools.jar.Main.paths:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 7
StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 4: aload 1
aload 3
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 7
5: aload 3
invokevirtual java.lang.String.length:()I
aload 2
invokevirtual java.lang.String.length:()I
if_icmple 7
6: aload 3
astore 2
end local 3 7: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
8: aload 1
aload 2
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 1
9: aload 0
aload 1
invokevirtual sun.tools.jar.Main.safeName:(Ljava/lang/String;)Ljava/lang/String;
astore 1
10: aload 1
ldc "./"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 12
11: aload 1
iconst_2
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 1
12: StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/tools/jar/Main;
0 13 1 name Ljava/lang/String;
2 13 2 matchPath Ljava/lang/String;
4 7 3 path Ljava/lang/String;
MethodParameters:
Name Flags
name
private void addVersion(java.util.jar.Manifest);
descriptor: (Ljava/util/jar/Manifest;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
astore 2
start local 2 1: aload 2
getstatic java.util.jar.Attributes$Name.MANIFEST_VERSION:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
ifnonnull 3
2: aload 2
getstatic java.util.jar.Attributes$Name.MANIFEST_VERSION:Ljava/util/jar/Attributes$Name;
ldc "1.0"
invokevirtual java.util.jar.Attributes.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: StackMap locals: java.util.jar.Attributes
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/tools/jar/Main;
0 4 1 m Ljava/util/jar/Manifest;
1 4 2 global Ljava/util/jar/Attributes;
MethodParameters:
Name Flags
m
private void addCreatedBy(java.util.jar.Manifest);
descriptor: (Ljava/util/jar/Manifest;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
astore 2
start local 2 1: aload 2
new java.util.jar.Attributes$Name
dup
ldc "Created-By"
invokespecial java.util.jar.Attributes$Name.<init>:(Ljava/lang/String;)V
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
ifnonnull 7
2: ldc "java.vendor"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 3: ldc "java.version"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 4: aload 2
new java.util.jar.Attributes$Name
dup
ldc "Created-By"
invokespecial java.util.jar.Attributes$Name.<init>:(Ljava/lang/String;)V
new java.lang.StringBuilder
dup
aload 4
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokevirtual java.util.jar.Attributes.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 4 end local 3 7: StackMap locals: java.util.jar.Attributes
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/tools/jar/Main;
0 8 1 m Ljava/util/jar/Manifest;
1 8 2 global Ljava/util/jar/Attributes;
3 7 3 javaVendor Ljava/lang/String;
4 7 4 jdkVersion Ljava/lang/String;
MethodParameters:
Name Flags
m
private void addMainClass(java.util.jar.Manifest, java.lang.String);
descriptor: (Ljava/util/jar/Manifest;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
astore 3
start local 3 1: aload 3
getstatic java.util.jar.Attributes$Name.MAIN_CLASS:Ljava/util/jar/Attributes$Name;
aload 2
invokevirtual java.util.jar.Attributes.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/tools/jar/Main;
0 3 1 m Ljava/util/jar/Manifest;
0 3 2 mainApp Ljava/lang/String;
1 3 3 global Ljava/util/jar/Attributes;
MethodParameters:
Name Flags
m
mainApp
private boolean isAmbiguousMainClass(java.util.jar.Manifest);
descriptor: (Ljava/util/jar/Manifest;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.tools.jar.Main.ename:Ljava/lang/String;
ifnull 6
1: aload 1
invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
astore 2
start local 2 2: aload 2
getstatic java.util.jar.Attributes$Name.MAIN_CLASS:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnull 6
3: aload 0
aload 0
ldc "error.bad.eflag"
invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
4: aload 0
invokevirtual sun.tools.jar.Main.usageError:()V
5: iconst_1
ireturn
end local 2 6: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/tools/jar/Main;
0 7 1 m Ljava/util/jar/Manifest;
2 6 2 global Ljava/util/jar/Attributes;
MethodParameters:
Name Flags
m
void addFile(java.util.zip.ZipOutputStream, java.io.File);
descriptor: (Ljava/util/zip/ZipOutputStream;Ljava/io/File;)V
flags: (0x0000)
Code:
stack=6, locals=12, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual java.io.File.getPath:()Ljava/lang/String;
astore 3
start local 3 1: aload 2
invokevirtual java.io.File.isDirectory:()Z
istore 4
start local 4 2: iload 4
ifeq 6
3: aload 3
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 4
aload 3
goto 5
4: StackMap locals: java.lang.String int
StackMap stack:
new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: StackMap locals:
StackMap stack: java.lang.String
astore 3
6: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual sun.tools.jar.Main.entryName:(Ljava/lang/String;)Ljava/lang/String;
astore 3
7: aload 3
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 8
aload 3
ldc "."
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 8
aload 3
aload 0
getfield sun.tools.jar.Main.zname:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 9
8: StackMap locals:
StackMap stack:
return
9: StackMap locals:
StackMap stack:
aload 3
ldc "META-INF/"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
aload 3
ldc "META-INF/MANIFEST.MF"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 14
10: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.Mflag:Z
ifne 14
11: aload 0
getfield sun.tools.jar.Main.vflag:Z
ifeq 13
12: aload 0
aload 0
ldc "out.ignore.entry"
aload 3
invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
13: StackMap locals:
StackMap stack:
return
14: StackMap locals:
StackMap stack:
iload 4
ifeq 15
lconst_0
goto 16
StackMap locals:
StackMap stack:
15: aload 2
invokevirtual java.io.File.length:()J
StackMap locals:
StackMap stack: long
16: lstore 5
start local 5 17: aload 0
getfield sun.tools.jar.Main.vflag:Z
ifeq 19
18: aload 0
getfield sun.tools.jar.Main.out:Ljava/io/PrintStream;
aload 0
ldc "out.adding"
aload 3
invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
19: StackMap locals: long
StackMap stack:
new java.util.zip.ZipEntry
dup
aload 3
invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
astore 7
start local 7 20: aload 7
aload 2
invokevirtual java.io.File.lastModified:()J
invokevirtual java.util.zip.ZipEntry.setTime:(J)V
21: lload 5
lconst_0
lcmp
ifne 26
22: aload 7
iconst_0
invokevirtual java.util.zip.ZipEntry.setMethod:(I)V
23: aload 7
lconst_0
invokevirtual java.util.zip.ZipEntry.setSize:(J)V
24: aload 7
lconst_0
invokevirtual java.util.zip.ZipEntry.setCrc:(J)V
25: goto 28
StackMap locals: java.util.zip.ZipEntry
StackMap stack:
26: aload 0
getfield sun.tools.jar.Main.flag0:Z
ifeq 28
27: aload 0
aload 7
aload 2
invokevirtual sun.tools.jar.Main.crc32File:(Ljava/util/zip/ZipEntry;Ljava/io/File;)V
28: StackMap locals:
StackMap stack:
aload 1
aload 7
invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
29: iload 4
ifne 31
30: aload 0
aload 2
aload 1
invokevirtual sun.tools.jar.Main.copy:(Ljava/io/File;Ljava/io/OutputStream;)V
31: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
32: aload 0
getfield sun.tools.jar.Main.vflag:Z
ifeq 45
33: aload 7
invokevirtual java.util.zip.ZipEntry.getSize:()J
lstore 5
34: aload 7
invokevirtual java.util.zip.ZipEntry.getCompressedSize:()J
lstore 8
start local 8 35: aload 0
getfield sun.tools.jar.Main.out:Ljava/io/PrintStream;
aload 0
ldc "out.size"
lload 5
invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
36: lload 8
invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
37: invokevirtual sun.tools.jar.Main.formatMsg2:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
38: aload 7
invokevirtual java.util.zip.ZipEntry.getMethod:()I
bipush 8
if_icmpne 44
39: lconst_0
lstore 10
start local 10 40: lload 5
lconst_0
lcmp
ifeq 42
41: lload 5
lload 8
lsub
ldc 100
lmul
lload 5
ldiv
lstore 10
42: StackMap locals: long long
StackMap stack:
aload 0
aload 0
ldc "out.deflated"
lload 10
invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
end local 10 43: goto 45
44: StackMap locals:
StackMap stack:
aload 0
aload 0
ldc "out.stored"
invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
end local 8 45: StackMap locals:
StackMap stack:
return
end local 7 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 46 0 this Lsun/tools/jar/Main;
0 46 1 zos Ljava/util/zip/ZipOutputStream;
0 46 2 file Ljava/io/File;
1 46 3 name Ljava/lang/String;
2 46 4 isDir Z
17 46 5 size J
20 46 7 e Ljava/util/zip/ZipEntry;
35 45 8 csize J
40 43 10 ratio J
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
zos
file
private void copy(java.io.InputStream, java.io.OutputStream);
descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: goto 2
start local 3 1: StackMap locals: int
StackMap stack:
aload 2
aload 0
getfield sun.tools.jar.Main.copyBuf:[B
iconst_0
iload 3
invokevirtual java.io.OutputStream.write:([BII)V
end local 3 2: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield sun.tools.jar.Main.copyBuf:[B
invokevirtual java.io.InputStream.read:([B)I
dup
istore 3
start local 3 3: iconst_m1
if_icmpne 1
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/tools/jar/Main;
0 5 1 from Ljava/io/InputStream;
0 5 2 to Ljava/io/OutputStream;
1 2 3 n I
3 5 3 n I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
from
to
private void copy(java.io.File, java.io.OutputStream);
descriptor: (Ljava/io/File;Ljava/io/OutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: new java.io.FileInputStream
dup
aload 1
invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
astore 3
start local 3 1: aload 0
aload 3
aload 2
invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
2: goto 6
StackMap locals: sun.tools.jar.Main java.io.File java.io.OutputStream java.io.InputStream
StackMap stack: java.lang.Throwable
3: astore 4
4: aload 3
invokevirtual java.io.InputStream.close:()V
5: aload 4
athrow
6: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.io.InputStream.close:()V
7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/tools/jar/Main;
0 8 1 from Ljava/io/File;
0 8 2 to Ljava/io/OutputStream;
1 8 3 in Ljava/io/InputStream;
Exception table:
from to target type
1 3 3 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
from
to
private void copy(java.io.InputStream, java.io.File);
descriptor: (Ljava/io/InputStream;Ljava/io/File;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: new java.io.FileOutputStream
dup
aload 2
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
astore 3
start local 3 1: aload 0
aload 1
aload 3
invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
2: goto 6
StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.File java.io.OutputStream
StackMap stack: java.lang.Throwable
3: astore 4
4: aload 3
invokevirtual java.io.OutputStream.close:()V
5: aload 4
athrow
6: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.io.OutputStream.close:()V
7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/tools/jar/Main;
0 8 1 from Ljava/io/InputStream;
0 8 2 to Ljava/io/File;
1 8 3 out Ljava/io/OutputStream;
Exception table:
from to target type
1 3 3 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
from
to
private void crc32Manifest(java.util.zip.ZipEntry, java.util.jar.Manifest);
descriptor: (Ljava/util/zip/ZipEntry;Ljava/util/jar/Manifest;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new sun.tools.jar.Main$CRC32OutputStream
dup
invokespecial sun.tools.jar.Main$CRC32OutputStream.<init>:()V
astore 3
start local 3 1: aload 2
aload 3
invokevirtual java.util.jar.Manifest.write:(Ljava/io/OutputStream;)V
2: aload 3
aload 1
invokevirtual sun.tools.jar.Main$CRC32OutputStream.updateEntry:(Ljava/util/zip/ZipEntry;)V
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/tools/jar/Main;
0 4 1 e Ljava/util/zip/ZipEntry;
0 4 2 m Ljava/util/jar/Manifest;
1 4 3 os Lsun/tools/jar/Main$CRC32OutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
e
m
private void crc32File(java.util.zip.ZipEntry, java.io.File);
descriptor: (Ljava/util/zip/ZipEntry;Ljava/io/File;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new sun.tools.jar.Main$CRC32OutputStream
dup
invokespecial sun.tools.jar.Main$CRC32OutputStream.<init>:()V
astore 3
start local 3 1: aload 0
aload 2
aload 3
invokevirtual sun.tools.jar.Main.copy:(Ljava/io/File;Ljava/io/OutputStream;)V
2: aload 3
getfield sun.tools.jar.Main$CRC32OutputStream.n:J
aload 2
invokevirtual java.io.File.length:()J
lcmp
ifeq 6
3: new sun.tools.jar.JarException
dup
aload 0
4: ldc "error.incorrect.length"
aload 2
invokevirtual java.io.File.getPath:()Ljava/lang/String;
5: invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokespecial sun.tools.jar.JarException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: sun.tools.jar.Main$CRC32OutputStream
StackMap stack:
aload 3
aload 1
invokevirtual sun.tools.jar.Main$CRC32OutputStream.updateEntry:(Ljava/util/zip/ZipEntry;)V
7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/tools/jar/Main;
0 8 1 e Ljava/util/zip/ZipEntry;
0 8 2 f Ljava/io/File;
1 8 3 os Lsun/tools/jar/Main$CRC32OutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
e
f
void replaceFSC(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnull 6
1: iconst_0
istore 2
start local 2 2: goto 5
3: StackMap locals: int
StackMap stack:
aload 1
iload 2
aload 1
iload 2
aaload
getstatic java.io.File.separatorChar:C
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
aastore
4: iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
aload 1
arraylength
if_icmplt 3
end local 2 6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/tools/jar/Main;
0 7 1 files [Ljava/lang/String;
2 6 2 i I
MethodParameters:
Name Flags
files
java.util.Set<java.util.zip.ZipEntry> newDirSet();
descriptor: ()Ljava/util/Set;
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: new sun.tools.jar.Main$1
dup
aload 0
invokespecial sun.tools.jar.Main$1.<init>:(Lsun/tools/jar/Main;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/tools/jar/Main;
Signature: ()Ljava/util/Set<Ljava/util/zip/ZipEntry;>;
void updateLastModifiedTime(java.util.Set<java.util.zip.ZipEntry>);
descriptor: (Ljava/util/Set;)V
flags: (0x0000)
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 8
StackMap locals: sun.tools.jar.Main java.util.Set top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.zip.ZipEntry
astore 2
start local 2 2: aload 2
invokevirtual java.util.zip.ZipEntry.getTime:()J
lstore 4
start local 4 3: lload 4
ldc -1
lcmp
ifeq 8
4: aload 0
aload 2
invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
getstatic java.io.File.separatorChar:C
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.safeName:(Ljava/lang/String;)Ljava/lang/String;
astore 6
start local 6 5: aload 6
invokevirtual java.lang.String.length:()I
ifeq 8
6: new java.io.File
dup
aload 6
bipush 47
getstatic java.io.File.separatorChar:C
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 7
start local 7 7: aload 7
lload 4
invokevirtual java.io.File.setLastModified:(J)Z
pop
end local 7 end local 6 end local 4 end local 2 8: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/tools/jar/Main;
0 10 1 zes Ljava/util/Set<Ljava/util/zip/ZipEntry;>;
2 8 2 ze Ljava/util/zip/ZipEntry;
3 8 4 lastModified J
5 8 6 name Ljava/lang/String;
7 8 7 f Ljava/io/File;
Exceptions:
throws java.io.IOException
Signature: (Ljava/util/Set<Ljava/util/zip/ZipEntry;>;)V
MethodParameters:
Name Flags
zes
void extract(java.io.InputStream, java.lang.String[]);
descriptor: (Ljava/io/InputStream;[Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=4, locals=11, args_size=3
start local 0 start local 1 start local 2 0: new java.util.zip.ZipInputStream
dup
aload 1
invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
astore 3
start local 3 1: aload 0
invokevirtual sun.tools.jar.Main.newDirSet:()Ljava/util/Set;
astore 5
start local 5 2: goto 14
start local 4 3: StackMap locals: java.util.zip.ZipInputStream java.util.zip.ZipEntry java.util.Set
StackMap stack:
aload 2
ifnonnull 6
4: aload 5
aload 0
aload 3
aload 4
invokevirtual sun.tools.jar.Main.extractFile:(Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
5: goto 14
6: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
astore 6
start local 6 7: aload 2
dup
astore 10
arraylength
istore 9
iconst_0
istore 8
goto 13
StackMap locals: sun.tools.jar.Main java.io.InputStream java.lang.String[] java.util.zip.ZipInputStream java.util.zip.ZipEntry java.util.Set java.lang.String top int int java.lang.String[]
StackMap stack:
8: aload 10
iload 8
aaload
astore 7
start local 7 9: aload 6
aload 7
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 12
10: aload 5
aload 0
aload 3
aload 4
invokevirtual sun.tools.jar.Main.extractFile:(Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
11: goto 14
end local 7 12: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
13: iload 8
iload 9
if_icmplt 8
end local 6 end local 4 14: StackMap locals: sun.tools.jar.Main java.io.InputStream java.lang.String[] java.util.zip.ZipInputStream top java.util.Set
StackMap stack:
aload 3
invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
dup
astore 4
start local 4 15: ifnonnull 3
16: aload 0
aload 5
invokevirtual sun.tools.jar.Main.updateLastModifiedTime:(Ljava/util/Set;)V
17: return
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 18 0 this Lsun/tools/jar/Main;
0 18 1 in Ljava/io/InputStream;
0 18 2 files [Ljava/lang/String;
1 18 3 zis Ljava/util/zip/ZipInputStream;
3 14 4 e Ljava/util/zip/ZipEntry;
15 18 4 e Ljava/util/zip/ZipEntry;
2 18 5 dirs Ljava/util/Set<Ljava/util/zip/ZipEntry;>;
7 14 6 name Ljava/lang/String;
9 12 7 file Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
in
files
void extract(java.lang.String, java.lang.String[]);
descriptor: (Ljava/lang/String;[Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=4, locals=12, args_size=3
start local 0 start local 1 start local 2 0: new java.util.zip.ZipFile
dup
aload 1
invokespecial java.util.zip.ZipFile.<init>:(Ljava/lang/String;)V
astore 3
start local 3 1: aload 0
invokevirtual sun.tools.jar.Main.newDirSet:()Ljava/util/Set;
astore 4
start local 4 2: aload 3
invokevirtual java.util.zip.ZipFile.entries:()Ljava/util/Enumeration;
astore 5
start local 5 3: goto 16
4: StackMap locals: java.util.zip.ZipFile java.util.Set java.util.Enumeration
StackMap stack:
aload 5
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.util.zip.ZipEntry
astore 6
start local 6 5: aload 2
ifnonnull 8
6: aload 4
aload 0
aload 3
aload 6
invokevirtual java.util.zip.ZipFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
aload 6
invokevirtual sun.tools.jar.Main.extractFile:(Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
7: goto 16
8: StackMap locals: java.util.zip.ZipEntry
StackMap stack:
aload 6
invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
astore 7
start local 7 9: aload 2
dup
astore 11
arraylength
istore 10
iconst_0
istore 9
goto 15
StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String[] java.util.zip.ZipFile java.util.Set java.util.Enumeration java.util.zip.ZipEntry java.lang.String top int int java.lang.String[]
StackMap stack:
10: aload 11
iload 9
aaload
astore 8
start local 8 11: aload 7
aload 8
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 14
12: aload 4
aload 0
aload 3
aload 6
invokevirtual java.util.zip.ZipFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
aload 6
invokevirtual sun.tools.jar.Main.extractFile:(Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
13: goto 16
end local 8 14: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
15: iload 9
iload 10
if_icmplt 10
end local 7 end local 6 16: StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String[] java.util.zip.ZipFile java.util.Set java.util.Enumeration
StackMap stack:
aload 5
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 4
17: aload 3
invokevirtual java.util.zip.ZipFile.close:()V
18: aload 0
aload 4
invokevirtual sun.tools.jar.Main.updateLastModifiedTime:(Ljava/util/Set;)V
19: return
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 20 0 this Lsun/tools/jar/Main;
0 20 1 fname Ljava/lang/String;
0 20 2 files [Ljava/lang/String;
1 20 3 zf Ljava/util/zip/ZipFile;
2 20 4 dirs Ljava/util/Set<Ljava/util/zip/ZipEntry;>;
3 20 5 zes Ljava/util/Enumeration<+Ljava/util/zip/ZipEntry;>;
5 16 6 e Ljava/util/zip/ZipEntry;
9 16 7 name Ljava/lang/String;
11 14 8 file Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fname
files
java.util.zip.ZipEntry extractFile(java.io.InputStream, java.util.zip.ZipEntry);
descriptor: (Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
flags: (0x0000)
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aload 0
aload 2
invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
getstatic java.io.File.separatorChar:C
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.safeName:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 2: aload 4
invokevirtual java.lang.String.length:()I
ifne 4
3: aload 3
areturn
4: StackMap locals: java.util.zip.ZipEntry java.lang.String
StackMap stack:
new java.io.File
dup
aload 4
bipush 47
getstatic java.io.File.separatorChar:C
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 5
start local 5 5: aload 2
invokevirtual java.util.zip.ZipEntry.isDirectory:()Z
ifeq 19
6: aload 5
invokevirtual java.io.File.exists:()Z
ifeq 11
7: aload 5
invokevirtual java.io.File.isDirectory:()Z
ifne 16
8: new java.io.IOException
dup
aload 0
ldc "error.create.dir"
9: aload 5
invokevirtual java.io.File.getPath:()Ljava/lang/String;
10: invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals: java.io.File
StackMap stack:
aload 5
invokevirtual java.io.File.mkdirs:()Z
ifne 15
12: new java.io.IOException
dup
aload 0
ldc "error.create.dir"
13: aload 5
invokevirtual java.io.File.getPath:()Ljava/lang/String;
14: invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
aload 2
astore 3
16: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.vflag:Z
ifeq 41
17: aload 0
aload 0
ldc "out.create"
aload 4
invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
18: goto 41
19: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.io.File.getParent:()Ljava/lang/String;
ifnull 26
20: new java.io.File
dup
aload 5
invokevirtual java.io.File.getParent:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 6
start local 6 21: aload 6
invokevirtual java.io.File.exists:()Z
ifne 22
aload 6
invokevirtual java.io.File.mkdirs:()Z
ifeq 23
StackMap locals: java.io.File
StackMap stack:
22: aload 6
invokevirtual java.io.File.isDirectory:()Z
ifne 26
23: StackMap locals:
StackMap stack:
new java.io.IOException
dup
aload 0
24: ldc "error.create.dir"
aload 6
invokevirtual java.io.File.getPath:()Ljava/lang/String;
25: invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 6 26: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 5
invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/File;)V
27: goto 33
StackMap locals:
StackMap stack: java.lang.Throwable
28: astore 6
29: aload 1
instanceof java.util.zip.ZipInputStream
ifeq 31
30: aload 1
checkcast java.util.zip.ZipInputStream
invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
goto 32
31: StackMap locals: java.lang.Throwable
StackMap stack:
aload 1
invokevirtual java.io.InputStream.close:()V
32: StackMap locals:
StackMap stack:
aload 6
athrow
33: StackMap locals:
StackMap stack:
aload 1
instanceof java.util.zip.ZipInputStream
ifeq 35
34: aload 1
checkcast java.util.zip.ZipInputStream
invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
goto 36
35: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.io.InputStream.close:()V
36: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.vflag:Z
ifeq 41
37: aload 2
invokevirtual java.util.zip.ZipEntry.getMethod:()I
bipush 8
if_icmpne 40
38: aload 0
aload 0
ldc "out.inflated"
aload 4
invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
39: goto 41
40: StackMap locals:
StackMap stack:
aload 0
aload 0
ldc "out.extracted"
aload 4
invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
41: StackMap locals:
StackMap stack:
getstatic sun.tools.jar.Main.useExtractionTime:Z
ifne 45
42: aload 2
invokevirtual java.util.zip.ZipEntry.getTime:()J
lstore 6
start local 6 43: lload 6
ldc -1
lcmp
ifeq 45
44: aload 5
lload 6
invokevirtual java.io.File.setLastModified:(J)Z
pop
end local 6 45: StackMap locals:
StackMap stack:
aload 3
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 46 0 this Lsun/tools/jar/Main;
0 46 1 is Ljava/io/InputStream;
0 46 2 e Ljava/util/zip/ZipEntry;
1 46 3 rc Ljava/util/zip/ZipEntry;
2 46 4 name Ljava/lang/String;
5 46 5 f Ljava/io/File;
21 26 6 d Ljava/io/File;
43 45 6 lastModified J
Exception table:
from to target type
26 28 28 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
is
e
void list(java.io.InputStream, java.lang.String[]);
descriptor: (Ljava/io/InputStream;[Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: new java.util.zip.ZipInputStream
dup
aload 1
invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
astore 3
start local 3 1: goto 4
start local 4 2: StackMap locals: java.util.zip.ZipInputStream java.util.zip.ZipEntry
StackMap stack:
aload 3
invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
3: aload 0
aload 4
aload 2
invokevirtual sun.tools.jar.Main.printEntry:(Ljava/util/zip/ZipEntry;[Ljava/lang/String;)V
end local 4 4: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
dup
astore 4
start local 4 5: ifnonnull 2
6: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/tools/jar/Main;
0 7 1 in Ljava/io/InputStream;
0 7 2 files [Ljava/lang/String;
1 7 3 zis Ljava/util/zip/ZipInputStream;
2 4 4 e Ljava/util/zip/ZipEntry;
5 7 4 e Ljava/util/zip/ZipEntry;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
in
files
void list(java.lang.String, java.lang.String[]);
descriptor: (Ljava/lang/String;[Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: new java.util.zip.ZipFile
dup
aload 1
invokespecial java.util.zip.ZipFile.<init>:(Ljava/lang/String;)V
astore 3
start local 3 1: aload 3
invokevirtual java.util.zip.ZipFile.entries:()Ljava/util/Enumeration;
astore 4
start local 4 2: goto 4
3: StackMap locals: java.util.zip.ZipFile java.util.Enumeration
StackMap stack:
aload 0
aload 4
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.util.zip.ZipEntry
aload 2
invokevirtual sun.tools.jar.Main.printEntry:(Ljava/util/zip/ZipEntry;[Ljava/lang/String;)V
4: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 3
5: aload 3
invokevirtual java.util.zip.ZipFile.close:()V
6: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/tools/jar/Main;
0 7 1 fname Ljava/lang/String;
0 7 2 files [Ljava/lang/String;
1 7 3 zf Ljava/util/zip/ZipFile;
2 7 4 zes Ljava/util/Enumeration<+Ljava/util/zip/ZipEntry;>;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fname
files
void dumpIndex(java.lang.String, sun.misc.JarIndex);
descriptor: (Ljava/lang/String;Lsun/misc/JarIndex;)V
flags: (0x0000)
Code:
stack=6, locals=8, args_size=3
start local 0 start local 1 start local 2 0: new java.io.File
dup
aload 1
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 3
start local 3 1: aload 3
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
astore 4
start local 4 2: aload 3
invokestatic sun.tools.jar.Main.createTempFileInSameDirectoryAs:(Ljava/io/File;)Ljava/io/File;
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
astore 5
start local 5 3: aload 0
aload 4
iconst_0
anewarray java.nio.file.OpenOption
invokestatic java.nio.file.Files.newInputStream:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/InputStream;
4: aload 5
iconst_0
anewarray java.nio.file.OpenOption
invokestatic java.nio.file.Files.newOutputStream:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/OutputStream;
5: aconst_null
aload 2
6: invokevirtual sun.tools.jar.Main.update:(Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Lsun/misc/JarIndex;)Z
7: ifeq 15
8: aload 5
aload 4
iconst_1
anewarray java.nio.file.CopyOption
dup
iconst_0
getstatic java.nio.file.StandardCopyOption.REPLACE_EXISTING:Ljava/nio/file/StandardCopyOption;
aastore
invokestatic java.nio.file.Files.move:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path;
pop
9: goto 15
StackMap locals: sun.tools.jar.Main java.lang.String sun.misc.JarIndex java.io.File java.nio.file.Path java.nio.file.Path
StackMap stack: java.io.IOException
10: astore 6
start local 6 11: new java.io.IOException
dup
aload 0
ldc "error.write.file"
invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
aload 6
invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 6 12: StackMap locals:
StackMap stack: java.lang.Throwable
astore 7
13: aload 5
invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
pop
14: aload 7
athrow
15: StackMap locals:
StackMap stack:
aload 5
invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
pop
16: return
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 17 0 this Lsun/tools/jar/Main;
0 17 1 rootjar Ljava/lang/String;
0 17 2 index Lsun/misc/JarIndex;
1 17 3 jarFile Ljava/io/File;
2 17 4 jarPath Ljava/nio/file/Path;
3 17 5 tmpPath Ljava/nio/file/Path;
11 12 6 e Ljava/io/IOException;
Exception table:
from to target type
8 9 10 Class java.io.IOException
3 12 12 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
rootjar
index
java.util.List<java.lang.String> getJarPath(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/List;
flags: (0x0000)
Code:
stack=5, locals=10, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: aload 2
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
2: aload 0
getfield sun.tools.jar.Main.jarPaths:Ljava/util/HashSet;
aload 1
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
3: aload 1
iconst_0
iconst_0
aload 1
bipush 47
invokevirtual java.lang.String.lastIndexOf:(I)I
iconst_1
iadd
invokestatic java.lang.Math.max:(II)I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 3
start local 3 4: new java.util.jar.JarFile
dup
aload 1
bipush 47
getstatic java.io.File.separatorChar:C
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokespecial java.util.jar.JarFile.<init>:(Ljava/lang/String;)V
astore 4
start local 4 5: aload 4
ifnull 20
6: aload 4
invokevirtual java.util.jar.JarFile.getManifest:()Ljava/util/jar/Manifest;
astore 5
start local 5 7: aload 5
ifnull 20
8: aload 5
invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
astore 6
start local 6 9: aload 6
ifnull 20
10: aload 6
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 7
start local 7 11: aload 7
ifnull 20
12: new java.util.StringTokenizer
dup
aload 7
invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;)V
astore 8
start local 8 13: goto 19
14: StackMap locals: sun.tools.jar.Main java.lang.String java.util.List java.lang.String java.util.jar.JarFile java.util.jar.Manifest java.util.jar.Attributes java.lang.String java.util.StringTokenizer
StackMap stack:
aload 8
invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
astore 9
start local 9 15: aload 9
ldc "/"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifne 19
16: aload 3
aload 9
invokevirtual java.lang.String.concat:(Ljava/lang/String;)Ljava/lang/String;
astore 9
17: aload 0
getfield sun.tools.jar.Main.jarPaths:Ljava/util/HashSet;
aload 9
invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
ifne 19
18: aload 2
aload 0
aload 9
invokevirtual sun.tools.jar.Main.getJarPath:(Ljava/lang/String;)Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
end local 9 19: StackMap locals:
StackMap stack:
aload 8
invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
ifne 14
end local 8 end local 7 end local 6 end local 5 20: StackMap locals: sun.tools.jar.Main java.lang.String java.util.List java.lang.String java.util.jar.JarFile
StackMap stack:
aload 4
invokevirtual java.util.jar.JarFile.close:()V
21: aload 2
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lsun/tools/jar/Main;
0 22 1 jar Ljava/lang/String;
1 22 2 files Ljava/util/List<Ljava/lang/String;>;
4 22 3 path Ljava/lang/String;
5 22 4 rf Ljava/util/jar/JarFile;
7 20 5 man Ljava/util/jar/Manifest;
9 20 6 attr Ljava/util/jar/Attributes;
11 20 7 value Ljava/lang/String;
13 20 8 st Ljava/util/StringTokenizer;
15 19 9 ajar Ljava/lang/String;
Exceptions:
throws java.io.IOException
Signature: (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;
MethodParameters:
Name Flags
jar
void genIndex(java.lang.String, java.lang.String[]);
descriptor: (Ljava/lang/String;[Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual sun.tools.jar.Main.getJarPath:(Ljava/lang/String;)Ljava/util/List;
astore 3
start local 3 1: aload 3
invokeinterface java.util.List.size:()I
istore 4
start local 4 2: iload 4
iconst_1
if_icmpne 9
aload 2
ifnull 9
3: iconst_0
istore 6
start local 6 4: goto 7
5: StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String[] java.util.List int top int
StackMap stack:
aload 3
aload 0
aload 2
iload 6
aaload
invokevirtual sun.tools.jar.Main.getJarPath:(Ljava/lang/String;)Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
6: iinc 6 1
StackMap locals:
StackMap stack:
7: iload 6
aload 2
arraylength
if_icmplt 5
end local 6 8: aload 3
invokeinterface java.util.List.size:()I
istore 4
9: StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String[] java.util.List int
StackMap stack:
aload 3
iload 4
anewarray java.lang.String
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.String[]
astore 5
start local 5 10: new sun.misc.JarIndex
dup
aload 5
invokespecial sun.misc.JarIndex.<init>:([Ljava/lang/String;)V
astore 6
start local 6 11: aload 0
aload 1
aload 6
invokevirtual sun.tools.jar.Main.dumpIndex:(Ljava/lang/String;Lsun/misc/JarIndex;)V
12: return
end local 6 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 13 0 this Lsun/tools/jar/Main;
0 13 1 rootjar Ljava/lang/String;
0 13 2 files [Ljava/lang/String;
1 13 3 jars Ljava/util/List<Ljava/lang/String;>;
2 13 4 njars I
10 13 5 jarfiles [Ljava/lang/String;
4 8 6 i I
11 13 6 index Lsun/misc/JarIndex;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
rootjar
files
void printEntry(java.util.zip.ZipEntry, java.lang.String[]);
descriptor: (Ljava/util/zip/ZipEntry;[Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=2, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 3
1: aload 0
aload 1
invokevirtual sun.tools.jar.Main.printEntry:(Ljava/util/zip/ZipEntry;)V
2: goto 11
3: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
astore 3
start local 3 4: aload 2
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 10
StackMap locals: sun.tools.jar.Main java.util.zip.ZipEntry java.lang.String[] java.lang.String top int int java.lang.String[]
StackMap stack:
5: aload 7
iload 5
aaload
astore 4
start local 4 6: aload 3
aload 4
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 9
7: aload 0
aload 1
invokevirtual sun.tools.jar.Main.printEntry:(Ljava/util/zip/ZipEntry;)V
8: return
end local 4 9: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
10: iload 5
iload 6
if_icmplt 5
end local 3 11: StackMap locals: sun.tools.jar.Main java.util.zip.ZipEntry java.lang.String[]
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/tools/jar/Main;
0 12 1 e Ljava/util/zip/ZipEntry;
0 12 2 files [Ljava/lang/String;
4 11 3 name Ljava/lang/String;
6 9 4 file Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
e
files
void printEntry(java.util.zip.ZipEntry);
descriptor: (Ljava/util/zip/ZipEntry;)V
flags: (0x0000)
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.tools.jar.Main.vflag:Z
ifeq 12
1: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 2: aload 1
invokevirtual java.util.zip.ZipEntry.getSize:()J
invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
astore 3
start local 3 3: bipush 6
aload 3
invokevirtual java.lang.String.length:()I
isub
istore 4
start local 4 4: goto 7
5: StackMap locals: java.lang.StringBuilder java.lang.String int
StackMap stack:
aload 2
bipush 32
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
6: iinc 4 -1
StackMap locals:
StackMap stack:
7: iload 4
ifgt 5
end local 4 8: aload 2
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 32
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
new java.util.Date
dup
aload 1
invokevirtual java.util.zip.ZipEntry.getTime:()J
invokespecial java.util.Date.<init>:(J)V
invokevirtual java.util.Date.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: aload 2
bipush 32
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: aload 0
aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
end local 3 end local 2 11: goto 13
12: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
13: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/tools/jar/Main;
0 14 1 e Ljava/util/zip/ZipEntry;
2 11 2 sb Ljava/lang/StringBuilder;
3 11 3 s Ljava/lang/String;
4 8 4 i I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
e
void usageError();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
aload 0
ldc "usage"
invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/tools/jar/Main;
void fatalError(java.lang.Exception);
descriptor: (Ljava/lang/Exception;)V
flags: (0x0000)
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.Exception.printStackTrace:()V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/tools/jar/Main;
0 2 1 e Ljava/lang/Exception;
MethodParameters:
Name Flags
e
void fatalError(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new java.lang.StringBuilder
dup
aload 0
getfield sun.tools.jar.Main.program:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/tools/jar/Main;
0 2 1 s Ljava/lang/String;
MethodParameters:
Name Flags
s
protected void output(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.tools.jar.Main.out:Ljava/io/PrintStream;
aload 1
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/tools/jar/Main;
0 2 1 s Ljava/lang/String;
MethodParameters:
Name Flags
s
protected void error(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.tools.jar.Main.err:Ljava/io/PrintStream;
aload 1
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/tools/jar/Main;
0 2 1 s Ljava/lang/String;
MethodParameters:
Name Flags
s
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: new sun.tools.jar.Main
dup
getstatic java.lang.System.out:Ljava/io/PrintStream;
getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "jar"
invokespecial sun.tools.jar.Main.<init>:(Ljava/io/PrintStream;Ljava/io/PrintStream;Ljava/lang/String;)V
astore 1
start local 1 1: aload 1
aload 0
invokevirtual sun.tools.jar.Main.run:([Ljava/lang/String;)Z
ifeq 2
iconst_0
goto 3
StackMap locals: sun.tools.jar.Main
StackMap stack:
2: iconst_1
StackMap locals:
StackMap stack: int
3: invokestatic java.lang.System.exit:(I)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 args [Ljava/lang/String;
1 5 1 jartool Lsun/tools/jar/Main;
MethodParameters:
Name Flags
args
}
SourceFile: "Main.java"
NestMembers:
sun.tools.jar.Main$1 sun.tools.jar.Main$CRC32OutputStream
InnerClasses:
public Name = java.util.jar.Attributes$Name of java.util.jar.Attributes
sun.tools.jar.Main$1
private CRC32OutputStream = sun.tools.jar.Main$CRC32OutputStream of sun.tools.jar.Main