public class com.sun.tools.javac.platform.JDKPlatformProvider implements com.sun.tools.javac.platform.PlatformProvider
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.sun.tools.javac.platform.JDKPlatformProvider
super_class: java.lang.Object
{
private static final java.lang.String[] symbolFileLocation;
descriptor: [Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.Set<java.lang.String> SUPPORTED_JAVA_PLATFORM_VERSIONS;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
public static final java.util.Comparator<java.lang.String> NUMERICAL_COMPARATOR;
descriptor: Ljava/util/Comparator;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Comparator<Ljava/lang/String;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=13, args_size=0
0: iconst_2
anewarray java.lang.String
dup
iconst_0
ldc "lib"
aastore
dup
iconst_1
ldc "ct.sym"
aastore
putstatic com.sun.tools.javac.platform.JDKPlatformProvider.symbolFileLocation:[Ljava/lang/String;
1: invokedynamic compare()Ljava/util/Comparator;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)I
com/sun/tools/javac/platform/JDKPlatformProvider.lambda$0(Ljava/lang/String;Ljava/lang/String;)I (6)
(Ljava/lang/String;Ljava/lang/String;)I
putstatic com.sun.tools.javac.platform.JDKPlatformProvider.NUMERICAL_COMPARATOR:Ljava/util/Comparator;
2: new java.util.TreeSet
dup
getstatic com.sun.tools.javac.platform.JDKPlatformProvider.NUMERICAL_COMPARATOR:Ljava/util/Comparator;
invokespecial java.util.TreeSet.<init>:(Ljava/util/Comparator;)V
putstatic com.sun.tools.javac.platform.JDKPlatformProvider.SUPPORTED_JAVA_PLATFORM_VERSIONS:Ljava/util/Set;
3: invokestatic com.sun.tools.javac.platform.JDKPlatformProvider.findCtSym:()Ljava/nio/file/Path;
astore 0
start local 0 4: aload 0
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
ifeq 34
5: aconst_null
astore 1
aconst_null
astore 2
6: aload 0
aconst_null
invokestatic java.nio.file.FileSystems.newFileSystem:(Ljava/nio/file/Path;Ljava/lang/ClassLoader;)Ljava/nio/file/FileSystem;
astore 3
start local 3 7: aload 3
invokevirtual java.nio.file.FileSystem.getRootDirectories:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.nio.file.Path
invokestatic java.nio.file.Files.newDirectoryStream:(Ljava/nio/file/Path;)Ljava/nio/file/DirectoryStream;
8: astore 4
start local 4 9: aload 4
invokeinterface java.nio.file.DirectoryStream.iterator:()Ljava/util/Iterator;
astore 6
goto 21
StackMap locals: java.nio.file.Path java.lang.Throwable java.lang.Throwable java.nio.file.FileSystem java.nio.file.DirectoryStream top java.util.Iterator
StackMap stack:
10: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.nio.file.Path
astore 5
start local 5 11: aload 5
invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
ldc "-"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 13
12: goto 21
13: StackMap locals: java.nio.file.Path java.lang.Throwable java.lang.Throwable java.nio.file.FileSystem java.nio.file.DirectoryStream java.nio.file.Path java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
invokevirtual java.lang.String.toCharArray:()[C
dup
astore 10
arraylength
istore 9
iconst_0
istore 8
goto 20
StackMap locals: java.nio.file.Path java.lang.Throwable java.lang.Throwable java.nio.file.FileSystem java.nio.file.DirectoryStream java.nio.file.Path java.util.Iterator top int int char[]
StackMap stack:
14: aload 10
iload 8
caload
istore 7
start local 7 15: iload 7
invokestatic java.lang.Character.toString:(C)Ljava/lang/String;
astore 11
start local 11 16: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 11
bipush 16
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;I)I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.sun.tools.javac.jvm.Target.lookup:(Ljava/lang/String;)Lcom/sun/tools/javac/jvm/Target;
astore 12
start local 12 17: aload 12
ifnull 19
18: getstatic com.sun.tools.javac.platform.JDKPlatformProvider.SUPPORTED_JAVA_PLATFORM_VERSIONS:Ljava/util/Set;
aload 12
invokestatic com.sun.tools.javac.platform.JDKPlatformProvider.targetNumericVersion:(Lcom/sun/tools/javac/jvm/Target;)Ljava/lang/String;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 12 end local 11 end local 7 19: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
20: iload 8
iload 9
if_icmplt 14
end local 5 21: StackMap locals: java.nio.file.Path java.lang.Throwable java.lang.Throwable java.nio.file.FileSystem java.nio.file.DirectoryStream top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
22: aload 4
ifnull 25
aload 4
invokeinterface java.nio.file.DirectoryStream.close:()V
goto 25
StackMap locals: java.nio.file.Path java.lang.Throwable java.lang.Throwable java.nio.file.FileSystem java.nio.file.DirectoryStream
StackMap stack: java.lang.Throwable
23: astore 1
aload 4
ifnull 24
aload 4
invokeinterface java.nio.file.DirectoryStream.close:()V
end local 4 StackMap locals:
StackMap stack:
24: aload 1
athrow
StackMap locals:
StackMap stack:
25: aload 3
ifnull 34
aload 3
invokevirtual java.nio.file.FileSystem.close:()V
goto 34
StackMap locals:
StackMap stack: java.lang.Throwable
26: astore 2
aload 1
ifnonnull 27
aload 2
astore 1
goto 28
StackMap locals:
StackMap stack:
27: aload 1
aload 2
if_acmpeq 28
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
28: aload 3
ifnull 29
aload 3
invokevirtual java.nio.file.FileSystem.close:()V
end local 3 StackMap locals:
StackMap stack:
29: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
30: astore 2
aload 1
ifnonnull 31
aload 2
astore 1
goto 32
StackMap locals:
StackMap stack:
31: aload 1
aload 2
if_acmpeq 32
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
32: aload 1
athrow
StackMap locals: java.nio.file.Path
StackMap stack: java.lang.Exception
33: pop
end local 0 34: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
4 34 0 ctSymFile Ljava/nio/file/Path;
7 29 3 fs Ljava/nio/file/FileSystem;
9 24 4 dir Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;
11 21 5 section Ljava/nio/file/Path;
15 19 7 ver C
16 19 11 verString Ljava/lang/String;
17 19 12 t Lcom/sun/tools/javac/jvm/Target;
Exception table:
from to target type
9 22 23 any
7 25 26 any
6 30 30 any
5 33 33 Class java.io.IOException
5 33 33 Class java.nio.file.ProviderNotFoundException
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/platform/JDKPlatformProvider;
public java.lang.Iterable<java.lang.String> getSupportedPlatformNames();
descriptor: ()Ljava/lang/Iterable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic com.sun.tools.javac.platform.JDKPlatformProvider.SUPPORTED_JAVA_PLATFORM_VERSIONS:Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/platform/JDKPlatformProvider;
Signature: ()Ljava/lang/Iterable<Ljava/lang/String;>;
public com.sun.tools.javac.platform.PlatformDescription getPlatform(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Lcom/sun/tools/javac/platform/PlatformDescription;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl
dup
aload 1
invokespecial com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl.<init>:(Ljava/lang/String;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/platform/JDKPlatformProvider;
0 1 1 platformName Ljava/lang/String;
0 1 2 options Ljava/lang/String;
MethodParameters:
Name Flags
platformName
options
private static java.lang.String targetNumericVersion(com.sun.tools.javac.jvm.Target);
descriptor: (Lcom/sun/tools/javac/jvm/Target;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.sun.tools.javac.jvm.Target.ordinal:()I
getstatic com.sun.tools.javac.jvm.Target.JDK1_1:Lcom/sun/tools/javac/jvm/Target;
invokevirtual com.sun.tools.javac.jvm.Target.ordinal:()I
isub
iconst_1
iadd
invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 target Lcom/sun/tools/javac/jvm/Target;
MethodParameters:
Name Flags
target
static java.nio.file.Path findCtSym();
descriptor: ()Ljava/nio/file/Path;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=6, args_size=0
0: ldc "java.home"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 0
start local 0 1: aload 0
iconst_0
anewarray java.lang.String
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
astore 1
start local 1 2: getstatic com.sun.tools.javac.platform.JDKPlatformProvider.symbolFileLocation:[Ljava/lang/String;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 6
StackMap locals: java.lang.String java.nio.file.Path top int int java.lang.String[]
StackMap stack:
3: aload 5
iload 3
aaload
astore 2
start local 2 4: aload 1
aload 2
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
astore 1
end local 2 5: iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
iload 4
if_icmplt 3
7: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 8 0 javaHome Ljava/lang/String;
2 8 1 file Ljava/nio/file/Path;
4 5 2 name Ljava/lang/String;
private static int lambda$0(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)I
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 2
start local 2 1: goto 4
end local 2 StackMap locals:
StackMap stack: java.lang.NumberFormatException
2: pop
3: ldc 2147483647
istore 2
start local 2 4: StackMap locals: int
StackMap stack:
aload 1
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 3
start local 3 5: goto 8
end local 3 StackMap locals:
StackMap stack: java.lang.NumberFormatException
6: pop
7: ldc 2147483647
istore 3
start local 3 8: StackMap locals: int
StackMap stack:
iload 2
iload 3
if_icmpeq 9
iload 2
iload 3
isub
goto 10
StackMap locals:
StackMap stack:
9: aload 0
aload 1
invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
StackMap locals:
StackMap stack: int
10: ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 s1 Ljava/lang/String;
0 11 1 s2 Ljava/lang/String;
1 2 2 i1 I
4 11 2 i1 I
5 6 3 i2 I
8 11 3 i2 I
Exception table:
from to target type
0 1 2 Class java.lang.NumberFormatException
4 5 6 Class java.lang.NumberFormatException
}
SourceFile: "JDKPlatformProvider.java"
NestMembers:
com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl$1 com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl$1$1 com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl$SigJavaFileObject
InnerClasses:
PlatformDescriptionImpl = com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl of com.sun.tools.javac.platform.JDKPlatformProvider
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles