public class com.oracle.svm.core.FallbackExecutor
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.core.FallbackExecutor
super_class: java.lang.Object
{
private static final java.nio.file.Path buildTimeJavaHome;
descriptor: Ljava/nio/file/Path;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc "java.home"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
iconst_0
anewarray java.lang.String
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
putstatic com.oracle.svm.core.FallbackExecutor.buildTimeJavaHome:Ljava/nio/file/Path;
return
LocalVariableTable:
Start End Slot Name Signature
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/oracle/svm/core/FallbackExecutor;
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=11, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: invokestatic com.oracle.svm.core.FallbackExecutor.getJavaExecutable:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toAbsolutePath:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.normalize:()Ljava/nio/file/Path;
astore 2
start local 2 2: aload 1
aload 2
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: getstatic com.oracle.svm.core.FallbackExecutor$Options.FallbackExecutorJavaArg:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.String[]
astore 3
start local 3 4: aload 3
ifnull 10
5: aload 3
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 9
StackMap locals: java.lang.String[] java.util.List java.nio.file.Path java.lang.String[] top int int java.lang.String[]
StackMap stack:
6: aload 7
iload 5
aaload
astore 4
start local 4 7: aload 1
aload 4
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 4 8: iinc 5 1
StackMap locals:
StackMap stack:
9: iload 5
iload 6
if_icmplt 6
10: StackMap locals: java.lang.String[] java.util.List java.nio.file.Path java.lang.String[]
StackMap stack:
getstatic com.oracle.svm.core.FallbackExecutor$Options.FallbackExecutorSystemProperty:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.String[]
astore 4
start local 4 11: aload 4
ifnull 17
12: aload 4
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 16
StackMap locals: java.lang.String[] java.util.List java.nio.file.Path java.lang.String[] java.lang.String[] top int int java.lang.String[]
StackMap stack:
13: aload 8
iload 6
aaload
astore 5
start local 5 14: aload 1
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 15: iinc 6 1
StackMap locals:
StackMap stack:
16: iload 6
iload 7
if_icmplt 13
17: StackMap locals: java.lang.String[] java.util.List java.nio.file.Path java.lang.String[] java.lang.String[]
StackMap stack:
getstatic com.oracle.svm.core.FallbackExecutor$Options.FallbackExecutorRuntimeJavaArg:Lcom/oracle/svm/core/option/RuntimeOptionKey;
invokevirtual com.oracle.svm.core.option.RuntimeOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.String[]
astore 5
start local 5 18: aload 5
ifnull 24
19: aload 5
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 23
StackMap locals: java.lang.String[] java.util.List java.nio.file.Path java.lang.String[] java.lang.String[] java.lang.String[] top int int java.lang.String[]
StackMap stack:
20: aload 9
iload 7
aaload
astore 6
start local 6 21: aload 1
aload 6
ldc "\\s+"
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
end local 6 22: iinc 7 1
StackMap locals:
StackMap stack:
23: iload 7
iload 8
if_icmplt 20
24: StackMap locals: java.lang.String[] java.util.List java.nio.file.Path java.lang.String[] java.lang.String[] java.lang.String[]
StackMap stack:
aload 1
ldc "-Dorg.graalvm.nativeimage.kind=fallback-executable"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
25: invokestatic org.graalvm.nativeimage.ProcessProperties.getExecutableName:()Ljava/lang/String;
iconst_0
anewarray java.lang.String
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
astore 6
start local 6 26: aload 6
ifnonnull 28
27: invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:()Ljava/lang/RuntimeException;
pop
28: StackMap locals: java.nio.file.Path
StackMap stack:
aload 6
invokeinterface java.nio.file.Path.toAbsolutePath:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.normalize:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
astore 7
start local 7 29: getstatic com.oracle.svm.core.FallbackExecutor$Options.FallbackExecutorClasspath:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.String
astore 8
start local 8 30: aload 8
getstatic java.io.File.pathSeparator:Ljava/lang/String;
invokestatic com.oracle.svm.core.SubstrateUtil.split:(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
astore 9
start local 9 31: iconst_0
istore 10
start local 10 32: goto 35
33: StackMap locals: java.lang.String[] java.util.List java.nio.file.Path java.lang.String[] java.lang.String[] java.lang.String[] java.nio.file.Path java.lang.String java.lang.String java.lang.String[] int
StackMap stack:
aload 9
iload 10
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;
aload 9
iload 10
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
34: iinc 10 1
StackMap locals:
StackMap stack:
35: iload 10
aload 9
arraylength
if_icmplt 33
end local 10 36: getstatic java.io.File.pathSeparator:Ljava/lang/String;
aload 9
invokestatic java.lang.String.join:(Ljava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/String;
astore 10
start local 10 37: aload 1
ldc "-cp"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
38: aload 1
aload 10
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
39: aload 1
getstatic com.oracle.svm.core.FallbackExecutor$Options.FallbackExecutorMainClass:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.String
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
40: aload 1
aload 0
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
41: ldc "FALLBACK_EXECUTOR_VERBOSE"
invokestatic java.lang.System.getenv:(Ljava/lang/String;)Ljava/lang/String;
ifnull 43
42: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Exec: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " "
aload 1
invokestatic java.lang.String.join:(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
43: StackMap locals: java.lang.String[] java.util.List java.nio.file.Path java.lang.String[] java.lang.String[] java.lang.String[] java.nio.file.Path java.lang.String java.lang.String java.lang.String[] java.lang.String
StackMap stack:
aload 2
aload 1
iconst_0
anewarray java.lang.String
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.String[]
invokestatic org.graalvm.nativeimage.ProcessProperties.exec:(Ljava/nio/file/Path;[Ljava/lang/String;)V
44: return
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 45 0 args [Ljava/lang/String;
1 45 1 command Ljava/util/List<Ljava/lang/String;>;
2 45 2 javaExecutable Ljava/nio/file/Path;
4 45 3 javaArgValues [Ljava/lang/String;
7 8 4 arg Ljava/lang/String;
11 45 4 properties [Ljava/lang/String;
14 15 5 p Ljava/lang/String;
18 45 5 runtimeArgs [Ljava/lang/String;
21 22 6 arg Ljava/lang/String;
26 45 6 fallbackImageDir Ljava/nio/file/Path;
29 45 7 pathPrefix Ljava/lang/String;
30 45 8 relativeClasspath Ljava/lang/String;
31 45 9 split [Ljava/lang/String;
32 36 10 i I
37 45 10 absoluteClasspath Ljava/lang/String;
MethodParameters:
Name Flags
args
private static java.nio.file.Path getJavaExecutable();
descriptor: ()Ljava/nio/file/Path;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=3, args_size=0
0: ldc "bin"
iconst_1
anewarray java.lang.String
dup
iconst_0
invokestatic com.oracle.svm.core.OS.getCurrent:()Lcom/oracle/svm/core/OS;
getstatic com.oracle.svm.core.OS.WINDOWS:Lcom/oracle/svm/core/OS;
if_acmpne 1
ldc "java.exe"
goto 2
StackMap locals:
StackMap stack: java.lang.String java.lang.String[] java.lang.String[] int
1: ldc "java"
StackMap locals:
StackMap stack: java.lang.String java.lang.String[] java.lang.String[] int java.lang.String
2: aastore
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
astore 0
start local 0 3: getstatic com.oracle.svm.core.FallbackExecutor.buildTimeJavaHome:Ljava/nio/file/Path;
aload 0
invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
astore 1
start local 1 4: aload 1
invokestatic java.nio.file.Files.isExecutable:(Ljava/nio/file/Path;)Z
ifeq 6
5: aload 1
areturn
6: StackMap locals: java.nio.file.Path java.nio.file.Path
StackMap stack:
ldc "."
iconst_0
anewarray java.lang.String
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
aload 0
invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
astore 1
7: aload 1
invokestatic java.nio.file.Files.isExecutable:(Ljava/nio/file/Path;)Z
ifeq 9
8: aload 1
areturn
9: StackMap locals:
StackMap stack:
ldc "JAVA_HOME"
invokestatic java.lang.System.getenv:(Ljava/lang/String;)Ljava/lang/String;
astore 2
start local 2 10: aload 2
ifnonnull 12
11: new java.lang.StringBuilder
dup
ldc "No "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " and no environment variable JAVA_HOME"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.svm.core.FallbackExecutor.showError:(Ljava/lang/String;)V
12: StackMap locals: java.lang.String
StackMap stack:
aload 2
iconst_0
anewarray java.lang.String
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
aload 0
invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
astore 1
13: aload 1
invokestatic java.nio.file.Files.isExecutable:(Ljava/nio/file/Path;)Z
ifeq 17
14: aload 1
15: areturn
16: StackMap locals:
StackMap stack: java.nio.file.InvalidPathException
pop
17: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "No "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " and invalid JAVA_HOME="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.svm.core.FallbackExecutor.showError:(Ljava/lang/String;)V
18: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
3 19 0 binJava Ljava/nio/file/Path;
4 19 1 javaCandidate Ljava/nio/file/Path;
10 19 2 javaHome Ljava/lang/String;
Exception table:
from to target type
12 15 16 Class java.nio.file.InvalidPathException
private static void showError(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Error: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: iconst_1
invokestatic java.lang.System.exit:(I)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 s Ljava/lang/String;
MethodParameters:
Name Flags
s
}
SourceFile: "FallbackExecutor.java"
NestMembers:
com.oracle.svm.core.FallbackExecutor$Options
InnerClasses:
public Options = com.oracle.svm.core.FallbackExecutor$Options of com.oracle.svm.core.FallbackExecutor