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 nflag;
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=15, 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 95
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:
aconst_null
astore 5
start local 5 33: aload 4
astore 6
start local 6 34: aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnonnull 36
35: ldc "tmpjar"
goto 37
36: StackMap locals: java.io.File java.io.OutputStream
StackMap stack:
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
getstatic java.io.File.separatorChar:C
invokevirtual java.lang.String.indexOf:(I)I
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
37: StackMap locals:
StackMap stack: java.lang.String
astore 7
start local 7 38: aload 0
getfield sun.tools.jar.Main.nflag:Z
ifeq 41
39: aload 0
aload 7
ldc ".jar"
invokevirtual sun.tools.jar.Main.createTemporaryFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
astore 5
40: new java.io.FileOutputStream
dup
aload 5
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
astore 4
41: StackMap locals: java.lang.String
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
42: aload 3
ifnull 44
43: aload 3
invokevirtual java.io.InputStream.close:()V
44: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.io.OutputStream.close:()V
45: aload 0
getfield sun.tools.jar.Main.nflag:Z
ifeq 171
46: aconst_null
astore 8
start local 8 47: aconst_null
astore 9
start local 9 48: aconst_null
astore 10
start local 10 49: invokestatic java.util.jar.Pack200.newPacker:()Ljava/util/jar/Pack200$Packer;
astore 11
start local 11 50: aload 11
invokeinterface java.util.jar.Pack200$Packer.properties:()Ljava/util/SortedMap;
astore 12
start local 12 51: aload 12
ldc "pack.effort"
ldc "1"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
52: new java.util.jar.JarFile
dup
aload 5
invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
invokespecial java.util.jar.JarFile.<init>:(Ljava/lang/String;)V
astore 8
53: aload 0
aload 7
ldc ".pack"
invokevirtual sun.tools.jar.Main.createTemporaryFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
astore 9
54: new java.io.FileOutputStream
dup
aload 9
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
astore 4
55: aload 11
aload 8
aload 4
invokeinterface java.util.jar.Pack200$Packer.pack:(Ljava/util/jar/JarFile;Ljava/io/OutputStream;)V
56: new java.util.jar.JarOutputStream
dup
aload 6
invokespecial java.util.jar.JarOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 10
57: invokestatic java.util.jar.Pack200.newUnpacker:()Ljava/util/jar/Pack200$Unpacker;
astore 13
start local 13 58: aload 13
aload 9
aload 10
invokeinterface java.util.jar.Pack200$Unpacker.unpack:(Ljava/io/File;Ljava/util/jar/JarOutputStream;)V
end local 13 end local 12 end local 11 59: goto 84
StackMap locals: sun.tools.jar.Main java.lang.String[] java.util.jar.Manifest java.io.InputStream java.io.OutputStream java.io.File java.io.OutputStream java.lang.String java.util.jar.JarFile java.io.File java.util.jar.JarOutputStream
StackMap stack: java.io.IOException
60: astore 11
start local 11 61: aload 0
aload 11
invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
end local 11 62: aload 8
ifnull 64
63: aload 8
invokevirtual java.util.jar.JarFile.close:()V
64: StackMap locals:
StackMap stack:
aload 4
ifnull 66
65: aload 4
invokevirtual java.io.OutputStream.close:()V
66: StackMap locals:
StackMap stack:
aload 10
ifnull 68
67: aload 10
invokevirtual java.util.jar.JarOutputStream.close:()V
68: StackMap locals:
StackMap stack:
aload 5
ifnull 70
aload 5
invokevirtual java.io.File.exists:()Z
ifeq 70
69: aload 5
invokevirtual java.io.File.delete:()Z
pop
70: StackMap locals:
StackMap stack:
aload 9
ifnull 171
aload 9
invokevirtual java.io.File.exists:()Z
ifeq 171
71: aload 9
invokevirtual java.io.File.delete:()Z
pop
goto 171
72: StackMap locals:
StackMap stack: java.lang.Throwable
astore 14
73: aload 8
ifnull 75
74: aload 8
invokevirtual java.util.jar.JarFile.close:()V
75: StackMap locals: sun.tools.jar.Main java.lang.String[] java.util.jar.Manifest java.io.InputStream java.io.OutputStream java.io.File java.io.OutputStream java.lang.String java.util.jar.JarFile java.io.File java.util.jar.JarOutputStream top top top java.lang.Throwable
StackMap stack:
aload 4
ifnull 77
76: aload 4
invokevirtual java.io.OutputStream.close:()V
77: StackMap locals:
StackMap stack:
aload 10
ifnull 79
78: aload 10
invokevirtual java.util.jar.JarOutputStream.close:()V
79: StackMap locals:
StackMap stack:
aload 5
ifnull 81
aload 5
invokevirtual java.io.File.exists:()Z
ifeq 81
80: aload 5
invokevirtual java.io.File.delete:()Z
pop
81: StackMap locals:
StackMap stack:
aload 9
ifnull 83
aload 9
invokevirtual java.io.File.exists:()Z
ifeq 83
82: aload 9
invokevirtual java.io.File.delete:()Z
pop
83: StackMap locals:
StackMap stack:
aload 14
athrow
84: StackMap locals: sun.tools.jar.Main java.lang.String[] java.util.jar.Manifest java.io.InputStream java.io.OutputStream java.io.File java.io.OutputStream java.lang.String java.util.jar.JarFile java.io.File java.util.jar.JarOutputStream
StackMap stack:
aload 8
ifnull 86
85: aload 8
invokevirtual java.util.jar.JarFile.close:()V
86: StackMap locals:
StackMap stack:
aload 4
ifnull 88
87: aload 4
invokevirtual java.io.OutputStream.close:()V
88: StackMap locals:
StackMap stack:
aload 10
ifnull 90
89: aload 10
invokevirtual java.util.jar.JarOutputStream.close:()V
90: StackMap locals:
StackMap stack:
aload 5
ifnull 92
aload 5
invokevirtual java.io.File.exists:()Z
ifeq 92
91: aload 5
invokevirtual java.io.File.delete:()Z
pop
92: StackMap locals:
StackMap stack:
aload 9
ifnull 171
aload 9
invokevirtual java.io.File.exists:()Z
ifeq 171
93: aload 9
invokevirtual java.io.File.delete:()Z
pop
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 94: goto 171
StackMap locals: sun.tools.jar.Main java.lang.String[]
StackMap stack:
95: aload 0
getfield sun.tools.jar.Main.uflag:Z
ifeq 128
96: aconst_null
astore 2
start local 2 97: aconst_null
astore 3
start local 3 98: aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnull 104
99: 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
100: aload 2
invokestatic sun.tools.jar.Main.createTempFileInSameDirectoryAs:(Ljava/io/File;)Ljava/io/File;
astore 3
101: new java.io.FileInputStream
dup
aload 2
invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
astore 4
start local 4 102: new java.io.FileOutputStream
dup
aload 3
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
astore 5
start local 5 103: goto 107
end local 5 end local 4 104: 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 105: 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 106: aload 0
iconst_0
putfield sun.tools.jar.Main.vflag:Z
107: StackMap locals: java.io.FileInputStream java.io.FileOutputStream
StackMap stack:
aload 0
getfield sun.tools.jar.Main.Mflag:Z
ifne 109
aload 0
getfield sun.tools.jar.Main.mname:Ljava/lang/String;
ifnull 109
108: 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 110
StackMap locals:
StackMap stack:
109: aconst_null
110: StackMap locals:
StackMap stack: java.io.FileInputStream
astore 6
start local 6 111: 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
112: aload 0
aload 4
new java.io.BufferedOutputStream
dup
aload 5
invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
113: aload 6
aconst_null
114: invokevirtual sun.tools.jar.Main.update:(Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Lsun/misc/JarIndex;)Z
istore 7
start local 7 115: aload 0
getfield sun.tools.jar.Main.ok:Z
ifeq 117
116: aload 0
iload 7
putfield sun.tools.jar.Main.ok:Z
117: StackMap locals: java.io.InputStream int
StackMap stack:
aload 4
invokevirtual java.io.FileInputStream.close:()V
118: aload 5
invokevirtual java.io.FileOutputStream.close:()V
119: aload 6
ifnull 121
120: aload 6
invokevirtual java.io.InputStream.close:()V
121: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.ok:Z
ifeq 171
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnull 171
122: aload 2
invokevirtual java.io.File.delete:()Z
pop
123: aload 3
aload 2
invokevirtual java.io.File.renameTo:(Ljava/io/File;)Z
ifne 126
124: aload 3
invokevirtual java.io.File.delete:()Z
pop
125: 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
126: 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 127: goto 171
StackMap locals: sun.tools.jar.Main java.lang.String[]
StackMap stack:
128: aload 0
getfield sun.tools.jar.Main.tflag:Z
ifeq 141
129: aload 0
aload 0
getfield sun.tools.jar.Main.files:[Ljava/lang/String;
invokevirtual sun.tools.jar.Main.replaceFSC:([Ljava/lang/String;)V
130: aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnull 133
131: 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
132: goto 171
133: 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 134: 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
135: goto 139
StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.InputStream
StackMap stack: java.lang.Throwable
136: astore 3
137: aload 2
invokevirtual java.io.InputStream.close:()V
138: aload 3
athrow
139: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.io.InputStream.close:()V
end local 2 140: goto 171
StackMap locals:
StackMap stack:
141: aload 0
getfield sun.tools.jar.Main.xflag:Z
ifeq 157
142: aload 0
aload 0
getfield sun.tools.jar.Main.files:[Ljava/lang/String;
invokevirtual sun.tools.jar.Main.replaceFSC:([Ljava/lang/String;)V
143: aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnull 146
aload 0
getfield sun.tools.jar.Main.files:[Ljava/lang/String;
ifnull 146
144: 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
145: goto 171
146: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnonnull 148
147: new java.io.FileInputStream
dup
getstatic java.io.FileDescriptor.in:Ljava/io/FileDescriptor;
invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
goto 149
148: 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
149: StackMap locals:
StackMap stack: java.io.FileInputStream
astore 2
start local 2 150: 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
151: goto 155
StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.InputStream
StackMap stack: java.lang.Throwable
152: astore 3
153: aload 2
invokevirtual java.io.InputStream.close:()V
154: aload 3
athrow
155: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.io.InputStream.close:()V
end local 2 156: goto 171
StackMap locals:
StackMap stack:
157: aload 0
getfield sun.tools.jar.Main.iflag:Z
ifeq 171
158: 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
159: goto 171
StackMap locals:
StackMap stack: java.io.IOException
160: astore 2
start local 2 161: aload 0
aload 2
invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
162: aload 0
iconst_0
putfield sun.tools.jar.Main.ok:Z
end local 2 163: goto 171
164: StackMap locals:
StackMap stack: java.lang.Error
astore 2
start local 2 165: aload 2
invokevirtual java.lang.Error.printStackTrace:()V
166: aload 0
iconst_0
putfield sun.tools.jar.Main.ok:Z
end local 2 167: goto 171
168: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
start local 2 169: aload 2
invokevirtual java.lang.Throwable.printStackTrace:()V
170: aload 0
iconst_0
putfield sun.tools.jar.Main.ok:Z
end local 2 171: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.flush:()V
172: aload 0
getfield sun.tools.jar.Main.err:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.flush:()V
173: aload 0
getfield sun.tools.jar.Main.ok:Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 174 0 this Lsun/tools/jar/Main;
0 174 1 args [Ljava/lang/String;
10 94 2 manifest Ljava/util/jar/Manifest;
11 94 3 in Ljava/io/InputStream;
28 29 4 out Ljava/io/OutputStream;
30 94 4 out Ljava/io/OutputStream;
33 94 5 tmpfile Ljava/io/File;
34 94 6 finalout Ljava/io/OutputStream;
38 94 7 tmpbase Ljava/lang/String;
47 94 8 jarFile Ljava/util/jar/JarFile;
48 94 9 packFile Ljava/io/File;
49 94 10 jos Ljava/util/jar/JarOutputStream;
50 59 11 packer Ljava/util/jar/Pack200$Packer;
51 59 12 p Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
58 59 13 unpacker Ljava/util/jar/Pack200$Unpacker;
61 62 11 ioe Ljava/io/IOException;
97 127 2 inputFile Ljava/io/File;
98 127 3 tmpFile Ljava/io/File;
102 104 4 in Ljava/io/FileInputStream;
105 127 4 in Ljava/io/FileInputStream;
103 104 5 out Ljava/io/FileOutputStream;
106 127 5 out Ljava/io/FileOutputStream;
111 127 6 manifest Ljava/io/InputStream;
115 127 7 updateOk Z
134 140 2 in Ljava/io/InputStream;
150 156 2 in Ljava/io/InputStream;
161 163 2 e Ljava/io/IOException;
165 167 2 ee Ljava/lang/Error;
169 171 2 t Ljava/lang/Throwable;
Exception table:
from to target type
49 59 60 Class java.io.IOException
49 62 72 any
134 136 136 any
150 152 152 any
3 22 160 Class java.io.IOException
23 159 160 Class java.io.IOException
3 22 164 Class java.lang.Error
23 159 164 Class java.lang.Error
3 22 168 Class java.lang.Throwable
23 159 168 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 63
14: StackMap locals: int
StackMap stack:
aload 3
iload 4
invokevirtual java.lang.String.charAt:(I)C
lookupswitch { // 13
48: 43
77: 35
80: 55
99: 15
101: 53
102: 39
105: 45
109: 41
110: 51
116: 30
117: 20
118: 37
120: 25
default: 57
}
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 62
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 62
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 62
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 62
35: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.tools.jar.Main.Mflag:Z
36: goto 62
37: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.tools.jar.Main.vflag:Z
38: goto 62
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 62
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 62
43: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.tools.jar.Main.flag0:Z
44: goto 62
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 62
51: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.tools.jar.Main.nflag:Z
52: goto 62
53: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iinc 2 1
aaload
putfield sun.tools.jar.Main.ename:Ljava/lang/String;
54: goto 62
55: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.tools.jar.Main.pflag:Z
56: goto 62
57: StackMap locals:
StackMap stack:
aload 0
aload 0
ldc "error.illegal.option"
58: aload 3
iload 4
invokevirtual java.lang.String.charAt:(I)C
invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
59: 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
60: aload 0
invokevirtual sun.tools.jar.Main.usageError:()V
61: iconst_0
ireturn
62: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
63: iload 4
aload 3
invokevirtual java.lang.String.length:()I
if_icmplt 14
end local 4 end local 3 64: goto 68
StackMap locals: sun.tools.jar.Main java.lang.String[] int
StackMap stack: java.lang.ArrayIndexOutOfBoundsException
65: pop
66: aload 0
invokevirtual sun.tools.jar.Main.usageError:()V
67: iconst_0
ireturn
68: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.cflag:Z
ifne 72
aload 0
getfield sun.tools.jar.Main.tflag:Z
ifne 72
aload 0
getfield sun.tools.jar.Main.xflag:Z
ifne 72
aload 0
getfield sun.tools.jar.Main.uflag:Z
ifne 72
aload 0
getfield sun.tools.jar.Main.iflag:Z
ifne 72
69: 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
70: aload 0
invokevirtual sun.tools.jar.Main.usageError:()V
71: iconst_0
ireturn
72: StackMap locals:
StackMap stack:
aload 1
arraylength
iload 2
isub
istore 3
start local 3 73: iload 3
ifle 101
74: iconst_0
istore 4
start local 4 75: iload 3
anewarray java.lang.String
astore 5
start local 5 76: iload 2
istore 6
start local 6 77: goto 93
78: 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 91
79: aload 1
iinc 6 1
iload 6
aaload
astore 7
start local 7 80: aload 7
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 82
81: aload 7
goto 83
StackMap locals: java.lang.String
StackMap stack:
82: 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;
83: StackMap locals:
StackMap stack: java.lang.String
astore 7
84: aload 7
getstatic java.io.File.separatorChar:C
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 7
85: goto 87
86: StackMap locals:
StackMap stack:
aload 7
ldc "//"
ldc "/"
invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
astore 7
87: StackMap locals:
StackMap stack:
aload 7
ldc "//"
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
iconst_m1
if_icmpgt 86
88: 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
89: 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 90: goto 92
91: StackMap locals:
StackMap stack:
aload 5
iload 4
iinc 4 1
aload 1
iload 6
aaload
aastore
92: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
93: iload 6
aload 1
arraylength
if_icmplt 78
end local 6 94: goto 98
StackMap locals: sun.tools.jar.Main java.lang.String[] int int int java.lang.String[]
StackMap stack: java.lang.ArrayIndexOutOfBoundsException
95: pop
96: aload 0
invokevirtual sun.tools.jar.Main.usageError:()V
97: iconst_0
ireturn
98: StackMap locals:
StackMap stack:
aload 0
iload 4
anewarray java.lang.String
putfield sun.tools.jar.Main.files:[Ljava/lang/String;
99: 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 100: goto 111
StackMap locals:
StackMap stack:
101: aload 0
getfield sun.tools.jar.Main.cflag:Z
ifeq 105
aload 0
getfield sun.tools.jar.Main.mname:Ljava/lang/String;
ifnonnull 105
102: 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
103: aload 0
invokevirtual sun.tools.jar.Main.usageError:()V
104: iconst_0
ireturn
105: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.uflag:Z
ifeq 111
106: aload 0
getfield sun.tools.jar.Main.mname:Ljava/lang/String;
ifnonnull 107
aload 0
getfield sun.tools.jar.Main.ename:Ljava/lang/String;
ifnull 108
107: StackMap locals:
StackMap stack:
iconst_1
ireturn
108: 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
109: aload 0
invokevirtual sun.tools.jar.Main.usageError:()V
110: iconst_0
ireturn
111: 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 112 0 this Lsun/tools/jar/Main;
0 112 1 args [Ljava/lang/String;
3 5 2 e Ljava/io/FileNotFoundException;
6 8 2 e Ljava/io/IOException;
9 112 2 count I
10 64 3 flags Ljava/lang/String;
13 64 4 i I
73 112 3 n I
75 100 4 k I
76 100 5 nameBuf [Ljava/lang/String;
77 94 6 i I
80 90 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 65 Class java.lang.ArrayIndexOutOfBoundsException
18 22 65 Class java.lang.ArrayIndexOutOfBoundsException
23 27 65 Class java.lang.ArrayIndexOutOfBoundsException
28 32 65 Class java.lang.ArrayIndexOutOfBoundsException
33 47 65 Class java.lang.ArrayIndexOutOfBoundsException
48 61 65 Class java.lang.ArrayIndexOutOfBoundsException
62 64 65 Class java.lang.ArrayIndexOutOfBoundsException
76 94 95 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;)Z
ifne 43
26: iconst_0
ireturn
end local 12 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 61
49: aload 3
ifnull 58
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 61
55: aload 0
aload 10
aload 6
invokevirtual sun.tools.jar.Main.updateManifest:(Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)Z
ifne 61
56: iconst_0
istore 9
end local 10 57: goto 61
StackMap locals:
StackMap stack:
58: aload 0
getfield sun.tools.jar.Main.ename:Ljava/lang/String;
ifnull 61
59: 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;)Z
ifne 61
60: iconst_0
istore 9
61: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.util.zip.ZipInputStream.close:()V
62: aload 6
invokevirtual java.util.zip.ZipOutputStream.close:()V
63: 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 64 0 this Lsun/tools/jar/Main;
0 64 1 in Ljava/io/InputStream;
0 64 2 out Ljava/io/OutputStream;
0 64 3 newManifest Ljava/io/InputStream;
0 64 4 jarIndex Lsun/misc/JarIndex;
1 64 5 zis Ljava/util/zip/ZipInputStream;
2 64 6 zos Ljava/util/zip/ZipOutputStream;
3 64 7 e Ljava/util/zip/ZipEntry;
4 64 8 foundManifest Z
5 64 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 27 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 57 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 boolean updateManifest(java.util.jar.Manifest, java.util.zip.ZipOutputStream);
descriptor: (Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)Z
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:
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 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
private java.io.File createTemporaryFile(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aload 1
aload 2
invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
astore 3
2: goto 4
StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String java.io.File
StackMap stack: java.lang.Exception
3: pop
4: StackMap locals:
StackMap stack:
aload 3
ifnonnull 13
5: aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnull 12
6: 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
invokevirtual java.io.File.getAbsoluteFile:()Ljava/io/File;
invokevirtual java.io.File.getParentFile:()Ljava/io/File;
astore 4
start local 4 7: aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
new java.lang.StringBuilder
dup
ldc ".tmp"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4
invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
astore 3
end local 4 8: goto 13
StackMap locals:
StackMap stack: java.io.IOException
9: astore 4
start local 4 10: aload 0
aload 4
invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
end local 4 11: goto 13
12: StackMap locals:
StackMap stack:
aload 0
new java.io.IOException
dup
aload 0
ldc "error.create.tempfile"
invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
13: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/tools/jar/Main;
0 14 1 tmpbase Ljava/lang/String;
0 14 2 suffix Ljava/lang/String;
1 14 3 tmpfile Ljava/io/File;
7 8 4 tmpfolder Ljava/io/File;
10 11 4 ioe Ljava/io/IOException;
Exception table:
from to target type
1 2 3 Class java.io.IOException
1 2 3 Class java.lang.SecurityException
6 8 9 Class java.io.IOException
MethodParameters:
Name Flags
tmpbase
suffix
}
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
public abstract Packer = java.util.jar.Pack200$Packer of java.util.jar.Pack200
public abstract Unpacker = java.util.jar.Pack200$Unpacker of java.util.jar.Pack200
sun.tools.jar.Main$1
private CRC32OutputStream = sun.tools.jar.Main$CRC32OutputStream of sun.tools.jar.Main