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;>;
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: new java.util.TreeSet
dup
invokespecial java.util.TreeSet.<init>:()V
putstatic com.sun.tools.javac.platform.JDKPlatformProvider.SUPPORTED_JAVA_PLATFORM_VERSIONS:Ljava/util/Set;
2: invokestatic com.sun.tools.javac.platform.JDKPlatformProvider.findCtSym:()Ljava/nio/file/Path;
astore 0
start local 0 3: 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 31
4: aconst_null
astore 1
aconst_null
astore 2
5: 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 6: 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;
7: astore 4
start local 4 8: aload 4
invokeinterface java.nio.file.DirectoryStream.iterator:()Ljava/util/Iterator;
astore 6
goto 18
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:
9: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.nio.file.Path
astore 5
start local 5 10: 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 17
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:
11: aload 10
iload 8
caload
istore 7
start local 7 12: iload 7
invokestatic java.lang.Character.toString:(C)Ljava/lang/String;
astore 11
start local 11 13: aload 11
invokestatic com.sun.tools.javac.jvm.Target.lookup:(Ljava/lang/String;)Lcom/sun/tools/javac/jvm/Target;
astore 12
start local 12 14: aload 12
ifnull 16
15: 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 16: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
17: iload 8
iload 9
if_icmplt 11
end local 5 18: 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 9
19: aload 4
ifnull 22
aload 4
invokeinterface java.nio.file.DirectoryStream.close:()V
goto 22
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
20: astore 1
aload 4
ifnull 21
aload 4
invokeinterface java.nio.file.DirectoryStream.close:()V
end local 4 StackMap locals:
StackMap stack:
21: aload 1
athrow
StackMap locals:
StackMap stack:
22: aload 3
ifnull 31
aload 3
invokevirtual java.nio.file.FileSystem.close:()V
goto 31
StackMap locals:
StackMap stack: java.lang.Throwable
23: astore 2
aload 1
ifnonnull 24
aload 2
astore 1
goto 25
StackMap locals:
StackMap stack:
24: aload 1
aload 2
if_acmpeq 25
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
25: aload 3
ifnull 26
aload 3
invokevirtual java.nio.file.FileSystem.close:()V
end local 3 StackMap locals:
StackMap stack:
26: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
27: astore 2
aload 1
ifnonnull 28
aload 2
astore 1
goto 29
StackMap locals:
StackMap stack:
28: aload 1
aload 2
if_acmpeq 29
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
29: aload 1
athrow
StackMap locals: java.nio.file.Path
StackMap stack: java.lang.Exception
30: pop
end local 0 31: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
3 31 0 ctSymFile Ljava/nio/file/Path;
6 26 3 fs Ljava/nio/file/FileSystem;
8 21 4 dir Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;
10 18 5 section Ljava/nio/file/Path;
12 16 7 ver C
13 16 11 verString Ljava/lang/String;
14 16 12 t Lcom/sun/tools/javac/jvm/Target;
Exception table:
from to target type
8 19 20 any
6 22 23 any
5 27 27 any
4 30 30 Class java.io.IOException
4 30 30 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;
}
SourceFile: "JDKPlatformProvider.java"
NestMembers:
com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl
InnerClasses:
PlatformDescriptionImpl = com.sun.tools.javac.platform.JDKPlatformProvider$PlatformDescriptionImpl of com.sun.tools.javac.platform.JDKPlatformProvider