final class sun.tools.common.ProcessHelper
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.tools.common.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:"
void <init>();
descriptor: ()V
flags: (0x0000)
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/common/ProcessHelper;
static java.lang.String getMainClass(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=6, args_size=1
start local 0 0: aload 0
invokestatic sun.tools.common.ProcessHelper.getCommandLine:(Ljava/lang/String;)Ljava/lang/String;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: java.lang.String
StackMap stack:
aload 1
ldc "cmd:"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 5
4: aload 1
ldc "cmd:"
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 1
5: StackMap locals:
StackMap stack:
aload 1
ldc "\u0000"
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 2
start local 2 6: aconst_null
astore 3
start local 3 7: aload 2
arraylength
ifne 9
8: aconst_null
areturn
9: StackMap locals: java.lang.String[] java.lang.String
StackMap stack:
aload 2
iconst_0
aaload
ldc "/"
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 4
start local 4 10: aload 4
arraylength
ifle 14
11: aload 4
aload 4
arraylength
iconst_1
isub
aaload
astore 5
start local 5 12: ldc "java"
aload 5
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 14
13: aconst_null
areturn
end local 5 14: StackMap locals: java.lang.String[]
StackMap stack:
iconst_1
istore 5
start local 5 15: goto 31
16: StackMap locals: int
StackMap stack:
iload 5
aload 2
arraylength
iconst_1
isub
if_icmpge 19
17: aload 2
iload 5
aaload
ldc "-m"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 18
aload 2
iload 5
aaload
ldc "--module"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 18
aload 2
iload 5
aaload
ldc "-jar"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 19
18: StackMap locals:
StackMap stack:
aload 2
iload 5
iconst_1
iadd
aaload
areturn
19: StackMap locals:
StackMap stack:
aload 2
iload 5
aaload
ldc "--module="
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 21
20: aload 2
iload 5
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 2
iload 5
aaload
ldc "-cp"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 23
aload 2
iload 5
aaload
ldc "-classpath"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 23
aload 2
iload 5
aaload
ldc "--class-path"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 23
22: aload 2
iload 5
aaload
invokestatic sun.tools.common.ProcessHelper.isModuleWhiteSpaceOption:(Ljava/lang/String;)Z
ifeq 25
23: StackMap locals:
StackMap stack:
iinc 5 1
24: goto 30
25: StackMap locals:
StackMap stack:
aload 2
iload 5
aaload
ldc "-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 27
26: goto 30
27: StackMap locals:
StackMap stack:
aload 2
iload 5
aaload
ldc ".java"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 29
28: aconst_null
areturn
29: StackMap locals:
StackMap stack:
aload 2
iload 5
aaload
astore 3
30: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
31: iload 5
aload 2
arraylength
if_icmpge 32
aload 3
ifnull 16
end local 5 32: StackMap locals:
StackMap stack:
aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 pid Ljava/lang/String;
1 33 1 cmdLine Ljava/lang/String;
6 33 2 parts [Ljava/lang/String;
7 33 3 mainClass Ljava/lang/String;
10 33 4 executablePath [Ljava/lang/String;
12 14 5 binaryName Ljava/lang/String;
15 32 5 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"