public class com.sun.tools.javac.launcher.Main
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.sun.tools.javac.launcher.Main
super_class: java.lang.Object
{
private java.io.PrintWriter out;
descriptor: Ljava/io/PrintWriter;
flags: (0x0002) ACC_PRIVATE
private static final java.lang.String bundleName;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "com.sun.tools.javac.resources.launcher"
private java.util.ResourceBundle resourceBundle;
descriptor: Ljava/util/ResourceBundle;
flags: (0x0002) ACC_PRIVATE
private java.lang.String errorPrefix;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=3, locals=2, args_size=1
start local 0 0: new com.sun.tools.javac.launcher.Main
dup
getstatic java.lang.System.err:Ljava/io/PrintStream;
invokespecial com.sun.tools.javac.launcher.Main.<init>:(Ljava/io/PrintStream;)V
invokestatic jdk.internal.misc.VM.getRuntimeArguments:()[Ljava/lang/String;
aload 0
invokevirtual com.sun.tools.javac.launcher.Main.run:([Ljava/lang/String;[Ljava/lang/String;)V
1: goto 8
StackMap locals:
StackMap stack: com.sun.tools.javac.launcher.Main$Fault
2: astore 1
start local 1 3: getstatic java.lang.System.err:Ljava/io/PrintStream;
aload 1
invokevirtual com.sun.tools.javac.launcher.Main$Fault.getMessage:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
4: iconst_1
invokestatic java.lang.System.exit:(I)V
end local 1 5: goto 8
6: StackMap locals:
StackMap stack: java.lang.reflect.InvocationTargetException
astore 1
start local 1 7: aload 1
invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
athrow
end local 1 8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 args [Ljava/lang/String;
3 5 1 f Lcom/sun/tools/javac/launcher/Main$Fault;
7 8 1 e Ljava/lang/reflect/InvocationTargetException;
Exception table:
from to target type
0 1 2 Class com.sun.tools.javac.launcher.Main$Fault
0 1 6 Class java.lang.reflect.InvocationTargetException
Exceptions:
throws java.lang.Throwable
MethodParameters:
Name Flags
args
public void <init>(java.io.PrintStream);
descriptor: (Ljava/io/PrintStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new java.io.PrintWriter
dup
new java.io.OutputStreamWriter
dup
aload 1
invokespecial java.io.OutputStreamWriter.<init>:(Ljava/io/OutputStream;)V
iconst_1
invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;Z)V
invokespecial com.sun.tools.javac.launcher.Main.<init>:(Ljava/io/PrintWriter;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/tools/javac/launcher/Main;
0 2 1 out Ljava/io/PrintStream;
MethodParameters:
Name Flags
out
public void <init>(java.io.PrintWriter);
descriptor: (Ljava/io/PrintWriter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield com.sun.tools.javac.launcher.Main.resourceBundle:Ljava/util/ResourceBundle;
2: aload 0
aload 1
putfield com.sun.tools.javac.launcher.Main.out:Ljava/io/PrintWriter;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/tools/javac/launcher/Main;
0 4 1 out Ljava/io/PrintWriter;
MethodParameters:
Name Flags
out
public void run(java.lang.String[], java.lang.String[]);
descriptor: ([Ljava/lang/String;[Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokevirtual com.sun.tools.javac.launcher.Main.getFile:([Ljava/lang/String;)Ljava/nio/file/Path;
astore 3
start local 3 1: new com.sun.tools.javac.launcher.Main$Context
dup
aload 3
invokeinterface java.nio.file.Path.toAbsolutePath:()Ljava/nio/file/Path;
invokespecial com.sun.tools.javac.launcher.Main$Context.<init>:(Ljava/nio/file/Path;)V
astore 4
start local 4 2: aload 0
aload 3
aload 0
aload 1
invokevirtual com.sun.tools.javac.launcher.Main.getJavacOpts:([Ljava/lang/String;)Ljava/util/List;
aload 4
invokevirtual com.sun.tools.javac.launcher.Main.compile:(Ljava/nio/file/Path;Ljava/util/List;Lcom/sun/tools/javac/launcher/Main$Context;)Ljava/lang/String;
astore 5
start local 5 3: aload 2
iconst_1
aload 2
arraylength
invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;II)[Ljava/lang/Object;
checkcast java.lang.String[]
astore 6
start local 6 4: aload 0
aload 5
aload 6
aload 4
invokevirtual com.sun.tools.javac.launcher.Main.execute:(Ljava/lang/String;[Ljava/lang/String;Lcom/sun/tools/javac/launcher/Main$Context;)V
5: 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 6 0 this Lcom/sun/tools/javac/launcher/Main;
0 6 1 runtimeArgs [Ljava/lang/String;
0 6 2 args [Ljava/lang/String;
1 6 3 file Ljava/nio/file/Path;
2 6 4 context Lcom/sun/tools/javac/launcher/Main$Context;
3 6 5 mainClassName Ljava/lang/String;
4 6 6 appArgs [Ljava/lang/String;
Exceptions:
throws com.sun.tools.javac.launcher.Main$Fault, java.lang.reflect.InvocationTargetException
MethodParameters:
Name Flags
runtimeArgs
args
private java.nio.file.Path getFile(java.lang.String[]);
descriptor: ([Ljava/lang/String;)Ljava/nio/file/Path;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 1
arraylength
ifne 2
1: new com.sun.tools.javac.launcher.Main$Fault
dup
aload 0
getstatic com.sun.tools.javac.resources.LauncherProperties$Errors.NoArgs:Lcom/sun/tools/javac/util/JCDiagnostic$Error;
invokespecial com.sun.tools.javac.launcher.Main$Fault.<init>:(Lcom/sun/tools/javac/launcher/Main;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
iconst_0
aaload
iconst_0
anewarray java.lang.String
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
astore 2
start local 2 3: goto 6
end local 2 StackMap locals:
StackMap stack: java.nio.file.InvalidPathException
4: pop
5: new com.sun.tools.javac.launcher.Main$Fault
dup
aload 0
aload 1
iconst_0
aaload
invokestatic com.sun.tools.javac.resources.LauncherProperties$Errors.InvalidFilename:(Ljava/lang/String;)Lcom/sun/tools/javac/util/JCDiagnostic$Error;
invokespecial com.sun.tools.javac.launcher.Main$Fault.<init>:(Lcom/sun/tools/javac/launcher/Main;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
athrow
start local 2 6: StackMap locals: java.nio.file.Path
StackMap stack:
aload 2
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
ifne 8
7: new com.sun.tools.javac.launcher.Main$Fault
dup
aload 0
aload 2
invokestatic com.sun.tools.javac.resources.LauncherProperties$Errors.FileNotFound:(Ljava/nio/file/Path;)Lcom/sun/tools/javac/util/JCDiagnostic$Error;
invokespecial com.sun.tools.javac.launcher.Main$Fault.<init>:(Lcom/sun/tools/javac/launcher/Main;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
athrow
8: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/sun/tools/javac/launcher/Main;
0 9 1 args [Ljava/lang/String;
3 4 2 file Ljava/nio/file/Path;
6 9 2 file Ljava/nio/file/Path;
Exception table:
from to target type
2 3 4 Class java.nio.file.InvalidPathException
Exceptions:
throws com.sun.tools.javac.launcher.Main$Fault
MethodParameters:
Name Flags
args
private javax.tools.JavaFileObject readFile(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Ljavax/tools/JavaFileObject;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=12, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
aconst_null
astore 3
1: new java.io.BufferedInputStream
dup
aload 1
iconst_0
anewarray java.nio.file.OpenOption
invokestatic java.nio.file.Files.newInputStream:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/InputStream;
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
astore 4
start local 4 2: aload 1
invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
ldc ".java"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 5
3: iconst_0
istore 5
start local 5 4: goto 11
end local 5 5: StackMap locals: java.lang.Throwable java.lang.Throwable java.io.BufferedInputStream
StackMap stack:
aload 4
iconst_2
invokevirtual java.io.BufferedInputStream.mark:(I)V
6: aload 4
invokevirtual java.io.BufferedInputStream.read:()I
bipush 35
if_icmpne 7
aload 4
invokevirtual java.io.BufferedInputStream.read:()I
bipush 33
if_icmpne 7
iconst_1
goto 8
StackMap locals:
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: istore 5
start local 5 9: iload 5
ifne 11
10: aload 4
invokevirtual java.io.BufferedInputStream.reset:()V
11: StackMap locals: int
StackMap stack:
aconst_null
astore 6
aconst_null
astore 7
12: new java.io.BufferedReader
dup
new java.io.InputStreamReader
dup
aload 4
invokestatic java.nio.charset.Charset.defaultCharset:()Ljava/nio/charset/Charset;
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
astore 8
start local 8 13: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 9
start local 9 14: iload 5
ifeq 17
15: aload 8
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
pop
16: aload 9
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
17: StackMap locals: com.sun.tools.javac.launcher.Main java.nio.file.Path java.lang.Throwable java.lang.Throwable java.io.BufferedInputStream int java.lang.Throwable java.lang.Throwable java.io.BufferedReader java.lang.StringBuilder
StackMap stack:
sipush 1024
newarray 5
astore 10
start local 10 18: goto 20
start local 11 19: StackMap locals: char[] int
StackMap stack:
aload 9
aload 10
iconst_0
iload 11
invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
pop
end local 11 20: StackMap locals:
StackMap stack:
aload 8
aload 10
iconst_0
aload 10
arraylength
invokevirtual java.io.BufferedReader.read:([CII)I
dup
istore 11
start local 11 21: iconst_m1
if_icmpne 19
22: new com.sun.tools.javac.launcher.Main$1
dup
aload 0
aload 1
invokeinterface java.nio.file.Path.toUri:()Ljava/net/URI;
getstatic javax.tools.JavaFileObject$Kind.SOURCE:Ljavax/tools/JavaFileObject$Kind;
aload 1
aload 9
invokespecial com.sun.tools.javac.launcher.Main$1.<init>:(Lcom/sun/tools/javac/launcher/Main;Ljava/net/URI;Ljavax/tools/JavaFileObject$Kind;Ljava/nio/file/Path;Ljava/lang/StringBuilder;)V
23: aload 8
ifnull 24
aload 8
invokevirtual java.io.BufferedReader.close:()V
24: StackMap locals: com.sun.tools.javac.launcher.Main java.nio.file.Path java.lang.Throwable java.lang.Throwable java.io.BufferedInputStream int java.lang.Throwable java.lang.Throwable java.io.BufferedReader java.lang.StringBuilder char[] int
StackMap stack: com.sun.tools.javac.launcher.Main$1
aload 4
ifnull 25
aload 4
invokevirtual java.io.BufferedInputStream.close:()V
25: StackMap locals:
StackMap stack: com.sun.tools.javac.launcher.Main$1
areturn
end local 11 end local 10 end local 9 StackMap locals: com.sun.tools.javac.launcher.Main java.nio.file.Path java.lang.Throwable java.lang.Throwable java.io.BufferedInputStream int java.lang.Throwable java.lang.Throwable java.io.BufferedReader
StackMap stack: java.lang.Throwable
26: astore 6
27: aload 8
ifnull 28
aload 8
invokevirtual java.io.BufferedReader.close:()V
end local 8 StackMap locals:
StackMap stack:
28: aload 6
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
29: astore 7
aload 6
ifnonnull 30
aload 7
astore 6
goto 31
StackMap locals:
StackMap stack:
30: aload 6
aload 7
if_acmpeq 31
aload 6
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
31: aload 6
athrow
end local 5 StackMap locals: com.sun.tools.javac.launcher.Main java.nio.file.Path java.lang.Throwable java.lang.Throwable java.io.BufferedInputStream
StackMap stack: java.lang.Throwable
32: astore 2
33: aload 4
ifnull 34
aload 4
invokevirtual java.io.BufferedInputStream.close:()V
end local 4 StackMap locals:
StackMap stack:
34: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
35: astore 3
aload 2
ifnonnull 36
aload 3
astore 2
goto 37
StackMap locals:
StackMap stack:
36: aload 2
aload 3
if_acmpeq 37
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
37: aload 2
athrow
StackMap locals: com.sun.tools.javac.launcher.Main java.nio.file.Path
StackMap stack: java.io.IOException
38: astore 2
start local 2 39: new com.sun.tools.javac.launcher.Main$Fault
dup
aload 0
aload 1
aload 2
invokestatic com.sun.tools.javac.resources.LauncherProperties$Errors.CantReadFile:(Ljava/nio/file/Path;Ljava/lang/Object;)Lcom/sun/tools/javac/util/JCDiagnostic$Error;
invokespecial com.sun.tools.javac.launcher.Main$Fault.<init>:(Lcom/sun/tools/javac/launcher/Main;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lcom/sun/tools/javac/launcher/Main;
0 40 1 file Ljava/nio/file/Path;
2 34 4 in Ljava/io/BufferedInputStream;
4 5 5 ignoreFirstLine Z
9 32 5 ignoreFirstLine Z
13 28 8 r Ljava/io/BufferedReader;
14 26 9 sb Ljava/lang/StringBuilder;
18 26 10 buf [C
19 20 11 n I
21 26 11 n I
39 40 2 e Ljava/io/IOException;
Exception table:
from to target type
13 23 26 any
12 24 29 any
26 29 29 any
2 24 32 any
26 32 32 any
1 25 35 any
26 35 35 any
0 25 38 Class java.io.IOException
26 38 38 Class java.io.IOException
Exceptions:
throws com.sun.tools.javac.launcher.Main$Fault
MethodParameters:
Name Flags
file
private java.util.List<java.lang.String> getJavacOpts(java.lang.String[]);
descriptor: ([Ljava/lang/String;)Ljava/util/List;
flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
Code:
stack=4, locals=9, 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: ldc "jdk.internal.javac.source"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 2: aload 3
ifnull 7
3: aload 3
invokestatic com.sun.tools.javac.code.Source.lookup:(Ljava/lang/String;)Lcom/sun/tools/javac/code/Source;
astore 4
start local 4 4: aload 4
ifnonnull 6
5: new com.sun.tools.javac.launcher.Main$Fault
dup
aload 0
aload 3
invokestatic com.sun.tools.javac.resources.LauncherProperties$Errors.InvalidValueForSource:(Ljava/lang/String;)Lcom/sun/tools/javac/util/JCDiagnostic$Error;
invokespecial com.sun.tools.javac.launcher.Main$Fault.<init>:(Lcom/sun/tools/javac/launcher/Main;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
athrow
6: StackMap locals: java.util.List java.lang.String com.sun.tools.javac.code.Source
StackMap stack:
aload 2
ldc "--release"
aload 3
invokestatic java.util.List.of:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
end local 4 7: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 8: goto 42
9: StackMap locals: int
StackMap stack:
aload 1
iload 4
aaload
astore 5
start local 5 10: aload 5
astore 6
start local 6 11: aconst_null
astore 7
start local 7 12: aload 5
ldc "--"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 17
13: aload 5
bipush 61
invokevirtual java.lang.String.indexOf:(I)I
istore 8
start local 8 14: iload 8
ifle 17
15: aload 5
iconst_0
iload 8
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 6
16: aload 5
iload 8
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 7
end local 8 17: StackMap locals: java.lang.String java.lang.String java.lang.String
StackMap stack:
aload 6
dup
astore 8
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 11
-1793881925: 18
-1729001003: 19
-1319033551: 20
-1300732130: 21
-262048752: 22
-45598394: 23
-35404685: 24
1507: 25
46426: 26
1158429461: 27
1918731514: 28
default: 41
}
StackMap locals: java.lang.String
StackMap stack:
18: aload 8
ldc "--add-modules"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 29
goto 41
StackMap locals:
StackMap stack:
19: aload 8
ldc "--limit-modules"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 29
goto 41
StackMap locals:
StackMap stack:
20: aload 8
ldc "--patch-module"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 29
goto 41
StackMap locals:
StackMap stack:
21: aload 8
ldc "--enable-preview"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 38
goto 41
StackMap locals:
StackMap stack:
22: aload 8
ldc "-classpath"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 29
goto 41
StackMap locals:
StackMap stack:
23: aload 8
ldc "--module-path"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 29
goto 41
StackMap locals:
StackMap stack:
24: aload 8
ldc "--add-exports"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 29
goto 41
StackMap locals:
StackMap stack:
25: aload 8
ldc "-p"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 29
goto 41
StackMap locals:
StackMap stack:
26: aload 8
ldc "-cp"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 29
goto 41
StackMap locals:
StackMap stack:
27: aload 8
ldc "--upgrade-module-path"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 29
goto 41
StackMap locals:
StackMap stack:
28: aload 8
ldc "--class-path"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 29
goto 41
29: StackMap locals:
StackMap stack:
aload 7
ifnonnull 33
30: iload 4
aload 1
arraylength
iconst_1
isub
if_icmpne 32
31: new com.sun.tools.javac.launcher.Main$Fault
dup
aload 0
aload 6
invokestatic com.sun.tools.javac.resources.LauncherProperties$Errors.NoValueForOption:(Ljava/lang/String;)Lcom/sun/tools/javac/util/JCDiagnostic$Error;
invokespecial com.sun.tools.javac.launcher.Main$Fault.<init>:(Lcom/sun/tools/javac/launcher/Main;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
athrow
32: StackMap locals:
StackMap stack:
aload 1
iinc 4 1
iload 4
aaload
astore 7
33: StackMap locals:
StackMap stack:
aload 6
ldc "--add-modules"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 35
aload 7
ldc "ALL-DEFAULT"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 35
34: goto 41
35: StackMap locals:
StackMap stack:
aload 2
aload 6
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
36: aload 2
aload 7
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
37: goto 41
38: StackMap locals:
StackMap stack:
aload 2
aload 6
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
39: aload 3
ifnonnull 41
40: new com.sun.tools.javac.launcher.Main$Fault
dup
aload 0
getstatic com.sun.tools.javac.resources.LauncherProperties$Errors.EnablePreviewRequiresSource:Lcom/sun/tools/javac/util/JCDiagnostic$Error;
invokespecial com.sun.tools.javac.launcher.Main$Fault.<init>:(Lcom/sun/tools/javac/launcher/Main;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
athrow
end local 7 end local 6 end local 5 41: StackMap locals: com.sun.tools.javac.launcher.Main java.lang.String[] java.util.List java.lang.String int
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
42: iload 4
aload 1
arraylength
if_icmplt 9
end local 4 43: aload 2
ldc "-proc:none"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
44: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 45 0 this Lcom/sun/tools/javac/launcher/Main;
0 45 1 runtimeArgs [Ljava/lang/String;
1 45 2 javacOpts Ljava/util/List<Ljava/lang/String;>;
2 45 3 sourceOpt Ljava/lang/String;
4 7 4 source Lcom/sun/tools/javac/code/Source;
8 43 4 i I
10 41 5 arg Ljava/lang/String;
11 41 6 opt Ljava/lang/String;
12 41 7 value Ljava/lang/String;
14 17 8 eq I
Exceptions:
throws com.sun.tools.javac.launcher.Main$Fault
Signature: ([Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;
MethodParameters:
Name Flags
runtimeArgs
private java.lang.String compile(java.nio.file.Path, java.util.List<java.lang.String>, com.sun.tools.javac.launcher.Main$Context);
descriptor: (Ljava/nio/file/Path;Ljava/util/List;Lcom/sun/tools/javac/launcher/Main$Context;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual com.sun.tools.javac.launcher.Main.readFile:(Ljava/nio/file/Path;)Ljavax/tools/JavaFileObject;
astore 4
start local 4 1: invokestatic com.sun.tools.javac.api.JavacTool.create:()Lcom/sun/tools/javac/api/JavacTool;
astore 5
start local 5 2: aload 5
aconst_null
aconst_null
aconst_null
invokevirtual com.sun.tools.javac.api.JavacTool.getStandardFileManager:(Ljavax/tools/DiagnosticListener;Ljava/util/Locale;Ljava/nio/charset/Charset;)Lcom/sun/tools/javac/file/JavacFileManager;
astore 6
start local 6 3: aload 6
getstatic javax.tools.StandardLocation.SOURCE_PATH:Ljavax/tools/StandardLocation;
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
invokeinterface javax.tools.StandardJavaFileManager.setLocation:(Ljavax/tools/JavaFileManager$Location;Ljava/lang/Iterable;)V
4: goto 7
StackMap locals: com.sun.tools.javac.launcher.Main java.nio.file.Path java.util.List com.sun.tools.javac.launcher.Main$Context javax.tools.JavaFileObject com.sun.tools.javac.api.JavacTool javax.tools.StandardJavaFileManager
StackMap stack: java.io.IOException
5: astore 7
start local 7 6: new java.lang.Error
dup
ldc "unexpected exception from file manager"
aload 7
invokespecial java.lang.Error.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 7 7: StackMap locals:
StackMap stack:
aload 3
aload 6
invokevirtual com.sun.tools.javac.launcher.Main$Context.getFileManager:(Ljavax/tools/StandardJavaFileManager;)Ljavax/tools/JavaFileManager;
astore 7
start local 7 8: aload 5
aload 0
getfield com.sun.tools.javac.launcher.Main.out:Ljava/io/PrintWriter;
aload 7
aconst_null
aload 2
aconst_null
aload 4
invokestatic java.util.List.of:(Ljava/lang/Object;)Ljava/util/List;
invokevirtual com.sun.tools.javac.api.JavacTool.getTask:(Ljava/io/Writer;Ljavax/tools/JavaFileManager;Ljavax/tools/DiagnosticListener;Ljava/lang/Iterable;Ljava/lang/Iterable;Ljava/lang/Iterable;)Lcom/sun/source/util/JavacTask;
astore 8
start local 8 9: new com.sun.tools.javac.launcher.Main$MainClassListener
dup
aload 8
invokespecial com.sun.tools.javac.launcher.Main$MainClassListener.<init>:(Lcom/sun/source/util/JavacTask;)V
astore 9
start local 9 10: aload 8
invokevirtual com.sun.source.util.JavacTask.call:()Ljava/lang/Boolean;
astore 10
start local 10 11: aload 10
invokevirtual java.lang.Boolean.booleanValue:()Z
ifne 13
12: new com.sun.tools.javac.launcher.Main$Fault
dup
aload 0
getstatic com.sun.tools.javac.resources.LauncherProperties$Errors.CompilationFailed:Lcom/sun/tools/javac/util/JCDiagnostic$Error;
invokespecial com.sun.tools.javac.launcher.Main$Fault.<init>:(Lcom/sun/tools/javac/launcher/Main;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
athrow
13: StackMap locals: com.sun.tools.javac.launcher.Main java.nio.file.Path java.util.List com.sun.tools.javac.launcher.Main$Context javax.tools.JavaFileObject com.sun.tools.javac.api.JavacTool javax.tools.StandardJavaFileManager javax.tools.JavaFileManager com.sun.source.util.JavacTask com.sun.tools.javac.launcher.Main$MainClassListener java.lang.Boolean
StackMap stack:
aload 9
getfield com.sun.tools.javac.launcher.Main$MainClassListener.mainClass:Ljavax/lang/model/element/TypeElement;
ifnonnull 15
14: new com.sun.tools.javac.launcher.Main$Fault
dup
aload 0
getstatic com.sun.tools.javac.resources.LauncherProperties$Errors.NoClass:Lcom/sun/tools/javac/util/JCDiagnostic$Error;
invokespecial com.sun.tools.javac.launcher.Main$Fault.<init>:(Lcom/sun/tools/javac/launcher/Main;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
athrow
15: StackMap locals:
StackMap stack:
aload 9
getfield com.sun.tools.javac.launcher.Main$MainClassListener.mainClass:Ljavax/lang/model/element/TypeElement;
invokeinterface javax.lang.model.element.TypeElement.getQualifiedName:()Ljavax/lang/model/element/Name;
invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
astore 11
start local 11 16: aload 11
areturn
end local 11 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 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/sun/tools/javac/launcher/Main;
0 17 1 file Ljava/nio/file/Path;
0 17 2 javacOpts Ljava/util/List<Ljava/lang/String;>;
0 17 3 context Lcom/sun/tools/javac/launcher/Main$Context;
1 17 4 fo Ljavax/tools/JavaFileObject;
2 17 5 javaCompiler Lcom/sun/tools/javac/api/JavacTool;
3 17 6 stdFileMgr Ljavax/tools/StandardJavaFileManager;
6 7 7 e Ljava/io/IOException;
8 17 7 fm Ljavax/tools/JavaFileManager;
9 17 8 t Lcom/sun/source/util/JavacTask;
10 17 9 l Lcom/sun/tools/javac/launcher/Main$MainClassListener;
11 17 10 ok Ljava/lang/Boolean;
16 17 11 mainClassName Ljava/lang/String;
Exception table:
from to target type
3 4 5 Class java.io.IOException
Exceptions:
throws com.sun.tools.javac.launcher.Main$Fault
Signature: (Ljava/nio/file/Path;Ljava/util/List<Ljava/lang/String;>;Lcom/sun/tools/javac/launcher/Main$Context;)Ljava/lang/String;
MethodParameters:
Name Flags
file
javacOpts
context
private void execute(java.lang.String, java.lang.String[], com.sun.tools.javac.launcher.Main$Context);
descriptor: (Ljava/lang/String;[Ljava/lang/String;Lcom/sun/tools/javac/launcher/Main$Context;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: ldc "jdk.launcher.sourcefile"
aload 3
getfield com.sun.tools.javac.launcher.Main$Context.file:Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
pop
1: aload 3
invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
invokevirtual com.sun.tools.javac.launcher.Main$Context.getClassLoader:(Ljava/lang/ClassLoader;)Ljava/lang/ClassLoader;
astore 4
start local 4 2: aload 1
iconst_1
aload 4
invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
astore 5
start local 5 3: aload 5
ldc "main"
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc [Ljava/lang/String;
aastore
invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 6
start local 6 4: bipush 9
istore 7
start local 7 5: aload 6
invokevirtual java.lang.reflect.Method.getModifiers:()I
iload 7
iand
iload 7
if_icmpeq 7
6: new com.sun.tools.javac.launcher.Main$Fault
dup
aload 0
getstatic com.sun.tools.javac.resources.LauncherProperties$Errors.MainNotPublicStatic:Lcom/sun/tools/javac/util/JCDiagnostic$Error;
invokespecial com.sun.tools.javac.launcher.Main$Fault.<init>:(Lcom/sun/tools/javac/launcher/Main;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
athrow
7: StackMap locals: com.sun.tools.javac.launcher.Main java.lang.String java.lang.String[] com.sun.tools.javac.launcher.Main$Context java.lang.ClassLoader java.lang.Class java.lang.reflect.Method int
StackMap stack:
aload 6
invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 9
8: new com.sun.tools.javac.launcher.Main$Fault
dup
aload 0
getstatic com.sun.tools.javac.resources.LauncherProperties$Errors.MainNotVoid:Lcom/sun/tools/javac/util/JCDiagnostic$Error;
invokespecial com.sun.tools.javac.launcher.Main$Fault.<init>:(Lcom/sun/tools/javac/launcher/Main;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
athrow
9: StackMap locals:
StackMap stack:
aload 6
iconst_1
invokevirtual java.lang.reflect.Method.setAccessible:(Z)V
10: aload 6
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 7 end local 6 end local 5 11: goto 24
StackMap locals: com.sun.tools.javac.launcher.Main java.lang.String java.lang.String[] com.sun.tools.javac.launcher.Main$Context java.lang.ClassLoader
StackMap stack: java.lang.ClassNotFoundException
12: pop
13: new com.sun.tools.javac.launcher.Main$Fault
dup
aload 0
aload 1
invokestatic com.sun.tools.javac.resources.LauncherProperties$Errors.CantFindClass:(Ljava/lang/String;)Lcom/sun/tools/javac/util/JCDiagnostic$Error;
invokespecial com.sun.tools.javac.launcher.Main$Fault.<init>:(Lcom/sun/tools/javac/launcher/Main;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
athrow
14: StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
pop
15: new com.sun.tools.javac.launcher.Main$Fault
dup
aload 0
aload 1
invokestatic com.sun.tools.javac.resources.LauncherProperties$Errors.CantFindMainMethod:(Ljava/lang/String;)Lcom/sun/tools/javac/util/JCDiagnostic$Error;
invokespecial com.sun.tools.javac.launcher.Main$Fault.<init>:(Lcom/sun/tools/javac/launcher/Main;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
athrow
16: StackMap locals:
StackMap stack: java.lang.IllegalAccessException
pop
17: new com.sun.tools.javac.launcher.Main$Fault
dup
aload 0
aload 1
invokestatic com.sun.tools.javac.resources.LauncherProperties$Errors.CantAccessMainMethod:(Ljava/lang/String;)Lcom/sun/tools/javac/util/JCDiagnostic$Error;
invokespecial com.sun.tools.javac.launcher.Main$Fault.<init>:(Lcom/sun/tools/javac/launcher/Main;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
athrow
18: StackMap locals:
StackMap stack: java.lang.reflect.InvocationTargetException
astore 5
start local 5 19: aload 5
invokevirtual java.lang.reflect.InvocationTargetException.getStackTrace:()[Ljava/lang/StackTraceElement;
arraylength
istore 6
start local 6 20: aload 5
invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
astore 7
start local 7 21: aload 7
invokevirtual java.lang.Throwable.getStackTrace:()[Ljava/lang/StackTraceElement;
astore 8
start local 8 22: aload 7
aload 8
iconst_0
aload 8
arraylength
iload 6
isub
invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;II)[Ljava/lang/Object;
checkcast java.lang.StackTraceElement[]
invokevirtual java.lang.Throwable.setStackTrace:([Ljava/lang/StackTraceElement;)V
23: aload 5
athrow
end local 8 end local 7 end local 6 end local 5 24: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lcom/sun/tools/javac/launcher/Main;
0 25 1 mainClassName Ljava/lang/String;
0 25 2 appArgs [Ljava/lang/String;
0 25 3 context Lcom/sun/tools/javac/launcher/Main$Context;
2 25 4 cl Ljava/lang/ClassLoader;
3 11 5 appClass Ljava/lang/Class<*>;
4 11 6 main Ljava/lang/reflect/Method;
5 11 7 PUBLIC_STATIC I
19 24 5 e Ljava/lang/reflect/InvocationTargetException;
20 24 6 invocationFrames I
21 24 7 target Ljava/lang/Throwable;
22 24 8 targetTrace [Ljava/lang/StackTraceElement;
Exception table:
from to target type
2 11 12 Class java.lang.ClassNotFoundException
2 11 14 Class java.lang.NoSuchMethodException
2 11 16 Class java.lang.IllegalAccessException
2 11 18 Class java.lang.reflect.InvocationTargetException
Exceptions:
throws com.sun.tools.javac.launcher.Main$Fault, java.lang.reflect.InvocationTargetException
MethodParameters:
Name Flags
mainClassName
appArgs
context
private java.lang.String getMessage(com.sun.tools.javac.util.JCDiagnostic$Error);
descriptor: (Lcom/sun/tools/javac/util/JCDiagnostic$Error;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.sun.tools.javac.util.JCDiagnostic$Error.key:()Ljava/lang/String;
astore 2
start local 2 1: aload 1
invokevirtual com.sun.tools.javac.util.JCDiagnostic$Error.getArgs:()[Ljava/lang/Object;
astore 3
start local 3 2: aload 0
getfield com.sun.tools.javac.launcher.Main.resourceBundle:Ljava/util/ResourceBundle;
ifnonnull 5
3: aload 0
ldc "com.sun.tools.javac.resources.launcher"
invokestatic java.util.ResourceBundle.getBundle:(Ljava/lang/String;)Ljava/util/ResourceBundle;
putfield com.sun.tools.javac.launcher.Main.resourceBundle:Ljava/util/ResourceBundle;
4: aload 0
aload 0
getfield com.sun.tools.javac.launcher.Main.resourceBundle:Ljava/util/ResourceBundle;
ldc "launcher.error"
invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
putfield com.sun.tools.javac.launcher.Main.errorPrefix:Ljava/lang/String;
5: StackMap locals: java.lang.String java.lang.Object[]
StackMap stack:
aload 0
getfield com.sun.tools.javac.launcher.Main.resourceBundle:Ljava/util/ResourceBundle;
aload 2
invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 6: aload 4
aload 3
invokestatic java.text.MessageFormat.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 5
start local 5 7: new java.lang.StringBuilder
dup
aload 0
getfield com.sun.tools.javac.launcher.Main.errorPrefix:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: areturn
end local 5 end local 4 9: StackMap locals:
StackMap stack: java.util.MissingResourceException
pop
10: new java.lang.StringBuilder
dup
ldc "Cannot access resource; "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/sun/tools/javac/launcher/Main;
0 11 1 error Lcom/sun/tools/javac/util/JCDiagnostic$Error;
1 11 2 key Ljava/lang/String;
2 11 3 args [Ljava/lang/Object;
6 9 4 resource Ljava/lang/String;
7 9 5 message Ljava/lang/String;
Exception table:
from to target type
2 8 9 Class java.util.MissingResourceException
MethodParameters:
Name Flags
error
}
SourceFile: "Main.java"
NestMembers:
com.sun.tools.javac.launcher.Main$1 com.sun.tools.javac.launcher.Main$Context com.sun.tools.javac.launcher.Main$Fault com.sun.tools.javac.launcher.Main$MainClassListener com.sun.tools.javac.launcher.Main$MemoryClassLoader com.sun.tools.javac.launcher.Main$MemoryClassLoader$1 com.sun.tools.javac.launcher.Main$MemoryClassLoader$MemoryURLConnection com.sun.tools.javac.launcher.Main$MemoryClassLoader$MemoryURLStreamHandler com.sun.tools.javac.launcher.Main$MemoryFileManager com.sun.tools.javac.launcher.Main$MemoryFileManager$1 com.sun.tools.javac.launcher.Main$MemoryFileManager$1$1
InnerClasses:
com.sun.tools.javac.launcher.Main$1
private Context = com.sun.tools.javac.launcher.Main$Context of com.sun.tools.javac.launcher.Main
public Fault = com.sun.tools.javac.launcher.Main$Fault of com.sun.tools.javac.launcher.Main
MainClassListener = com.sun.tools.javac.launcher.Main$MainClassListener of com.sun.tools.javac.launcher.Main
private MemoryClassLoader = com.sun.tools.javac.launcher.Main$MemoryClassLoader of com.sun.tools.javac.launcher.Main
private MemoryFileManager = com.sun.tools.javac.launcher.Main$MemoryFileManager of com.sun.tools.javac.launcher.Main
public Errors = com.sun.tools.javac.resources.LauncherProperties$Errors of com.sun.tools.javac.resources.LauncherProperties
public final Error = com.sun.tools.javac.util.JCDiagnostic$Error of com.sun.tools.javac.util.JCDiagnostic
public abstract Location = javax.tools.JavaFileManager$Location of javax.tools.JavaFileManager
public final Kind = javax.tools.JavaFileObject$Kind of javax.tools.JavaFileObject