public class sun.tools.ProcessHelper implements sun.tools.common.ProcessHelper
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.tools.ProcessHelper
super_class: java.lang.Object
{
private static final java.lang.String CMD_PREFIX;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "cmd:"
private static final sun.tools.ProcessHelper INSTANCE;
descriptor: Lsun/tools/ProcessHelper;
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: new sun.tools.ProcessHelper
dup
invokespecial sun.tools.ProcessHelper.<init>:()V
putstatic sun.tools.ProcessHelper.INSTANCE:Lsun/tools/ProcessHelper;
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 Lsun/tools/ProcessHelper;
public static sun.tools.ProcessHelper getInstance();
descriptor: ()Lsun/tools/ProcessHelper;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic sun.tools.ProcessHelper.INSTANCE:Lsun/tools/ProcessHelper;
areturn
LocalVariableTable:
Start End Slot Name Signature
public java.lang.String getMainClass(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokestatic sun.tools.ProcessHelper.getCommandLine:(Ljava/lang/String;)Ljava/lang/String;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: java.lang.String
StackMap stack:
aload 2
ldc "cmd:"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 5
4: aload 2
ldc "cmd:"
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 2
5: StackMap locals:
StackMap stack:
aload 2
ldc "\u0000"
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 3
start local 3 6: aconst_null
astore 4
start local 4 7: aload 3
arraylength
ifne 9
8: aconst_null
areturn
9: StackMap locals: java.lang.String[] java.lang.String
StackMap stack:
aload 3
iconst_0
aaload
ldc "/"
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 5
start local 5 10: aload 5
arraylength
ifle 14
11: aload 5
aload 5
arraylength
iconst_1
isub
aaload
astore 6
start local 6 12: ldc "java"
aload 6
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 14
13: aconst_null
areturn
end local 6 14: StackMap locals: java.lang.String[]
StackMap stack:
iconst_1
istore 6
start local 6 15: goto 31
16: StackMap locals: int
StackMap stack:
iload 6
aload 3
arraylength
iconst_1
isub
if_icmpge 19
17: aload 3
iload 6
aaload
ldc "-m"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 18
aload 3
iload 6
aaload
ldc "--module"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 18
aload 3
iload 6
aaload
ldc "-jar"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 19
18: StackMap locals:
StackMap stack:
aload 3
iload 6
iconst_1
iadd
aaload
areturn
19: StackMap locals:
StackMap stack:
aload 3
iload 6
aaload
ldc "--module="
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 21
20: aload 3
iload 6
aaload
ldc "--module="
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
areturn
21: StackMap locals:
StackMap stack:
aload 3
iload 6
aaload
ldc "-cp"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 23
aload 3
iload 6
aaload
ldc "-classpath"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 23
aload 3
iload 6
aaload
ldc "--class-path"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 23
22: aload 3
iload 6
aaload
invokestatic sun.tools.ProcessHelper.isModuleWhiteSpaceOption:(Ljava/lang/String;)Z
ifeq 25
23: StackMap locals:
StackMap stack:
iinc 6 1
24: goto 30
25: StackMap locals:
StackMap stack:
aload 3
iload 6
aaload
ldc "-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 27
26: goto 30
27: StackMap locals:
StackMap stack:
aload 3
iload 6
aaload
ldc ".java"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 29
28: aconst_null
areturn
29: StackMap locals:
StackMap stack:
aload 3
iload 6
aaload
astore 4
30: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
31: iload 6
aload 3
arraylength
if_icmpge 32
aload 4
ifnull 16
end local 6 32: StackMap locals:
StackMap stack:
aload 4
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 33 0 this Lsun/tools/ProcessHelper;
0 33 1 pid Ljava/lang/String;
1 33 2 cmdLine Ljava/lang/String;
6 33 3 parts [Ljava/lang/String;
7 33 4 mainClass Ljava/lang/String;
10 33 5 executablePath [Ljava/lang/String;
12 14 6 binaryName Ljava/lang/String;
15 32 6 i I
MethodParameters:
Name Flags
pid
private static java.lang.String getCommandLine(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: new java.lang.StringBuilder
dup
ldc "/proc/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "/cmdline"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()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;
invokestatic java.nio.file.Files.lines:(Ljava/nio/file/Path;)Ljava/util/stream/Stream;
2: astore 3
start local 3 3: aload 3
invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
aconst_null
invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
4: aload 3
ifnull 5
aload 3
invokeinterface java.util.stream.Stream.close:()V
5: StackMap locals: java.lang.String java.lang.Throwable java.lang.Throwable java.util.stream.Stream
StackMap stack: java.lang.String
areturn
StackMap locals:
StackMap stack: java.lang.Throwable
6: astore 1
7: aload 3
ifnull 8
aload 3
invokeinterface java.util.stream.Stream.close:()V
end local 3 StackMap locals:
StackMap stack:
8: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
9: astore 2
aload 1
ifnonnull 10
aload 2
astore 1
goto 11
StackMap locals:
StackMap stack:
10: aload 1
aload 2
if_acmpeq 11
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
11: aload 1
athrow
StackMap locals: java.lang.String
StackMap stack: java.lang.Exception
12: pop
13: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 pid Ljava/lang/String;
3 8 3 lines Ljava/util/stream/Stream<Ljava/lang/String;>;
Exception table:
from to target type
3 4 6 any
1 5 9 any
6 9 9 any
0 5 12 Class java.io.IOException
6 12 12 Class java.io.IOException
0 5 12 Class java.io.UncheckedIOException
6 12 12 Class java.io.UncheckedIOException
MethodParameters:
Name Flags
pid
private static boolean isModuleWhiteSpaceOption(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc "-p"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
1: aload 0
ldc "--module-path"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
2: aload 0
ldc "--upgrade-module-path"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
3: aload 0
ldc "--add-modules"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
4: aload 0
ldc "--limit-modules"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
5: aload 0
ldc "--add-exports"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
6: aload 0
ldc "--add-opens"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
7: aload 0
ldc "--add-reads"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
8: aload 0
ldc "--patch-module"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
9: iconst_0
ireturn
StackMap locals:
StackMap stack:
10: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 option Ljava/lang/String;
MethodParameters:
Name Flags
option
}
SourceFile: "ProcessHelper.java"