abstract class com.sun.tools.jdi.AbstractLauncher extends com.sun.tools.jdi.ConnectorImpl implements com.sun.jdi.connect.LaunchingConnector
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.sun.tools.jdi.AbstractLauncher
  super_class: com.sun.tools.jdi.ConnectorImpl
{
  java.lang.ThreadGroup grp;
    descriptor: Ljava/lang/ThreadGroup;
    flags: (0x0000) 

  public abstract com.sun.jdi.VirtualMachine launch(java.util.Map<java.lang.String, ? extends com.sun.jdi.connect.Connector$Argument>);
    descriptor: (Ljava/util/Map;)Lcom/sun/jdi/VirtualMachine;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException, com.sun.jdi.connect.IllegalConnectorArgumentsException, com.sun.jdi.connect.VMStartException
    Signature: (Ljava/util/Map<Ljava/lang/String;+Lcom/sun/jdi/connect/Connector$Argument;>;)Lcom/sun/jdi/VirtualMachine;
    MethodParameters:
           Name  Flags
      arguments  

  public abstract java.lang.String name();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.String description();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.sun.tools.jdi.AbstractLauncher this
         0: .line 61
            aload 0 /* this */
            invokespecial com.sun.tools.jdi.ConnectorImpl.<init>:()V
         1: .line 63
            aload 0 /* this */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getThreadGroup:()Ljava/lang/ThreadGroup;
            putfield com.sun.tools.jdi.AbstractLauncher.grp:Ljava/lang/ThreadGroup;
         2: .line 64
            aconst_null
            astore 1 /* parent */
        start local 1 // java.lang.ThreadGroup parent
         3: .line 65
            goto 5
         4: .line 66
      StackMap locals: com.sun.tools.jdi.AbstractLauncher java.lang.ThreadGroup
      StackMap stack:
            aload 0 /* this */
            aload 1 /* parent */
            putfield com.sun.tools.jdi.AbstractLauncher.grp:Ljava/lang/ThreadGroup;
         5: .line 65
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdi.AbstractLauncher.grp:Ljava/lang/ThreadGroup;
            invokevirtual java.lang.ThreadGroup.getParent:()Ljava/lang/ThreadGroup;
            dup
            astore 1 /* parent */
            ifnonnull 4
         6: .line 68
            return
        end local 1 // java.lang.ThreadGroup parent
        end local 0 // com.sun.tools.jdi.AbstractLauncher this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/sun/tools/jdi/AbstractLauncher;
            3    7     1  parent  Ljava/lang/ThreadGroup;

  java.lang.String[] tokenizeCommand(java.lang.String, char);
    descriptor: (Ljava/lang/String;C)[Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=6, locals=10, args_size=3
        start local 0 // com.sun.tools.jdi.AbstractLauncher this
        start local 1 // java.lang.String command
        start local 2 // char quote
         0: .line 71
            iload 2 /* quote */
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            astore 3 /* quoteStr */
        start local 3 // java.lang.String quoteStr
         1: .line 76
            new java.util.StringTokenizer
            dup
            aload 1 /* command */
         2: .line 77
            new java.lang.StringBuilder
            dup
            iload 2 /* quote */
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " \t\r\n\f"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 78
            iconst_1
         4: .line 76
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;Z)V
            astore 4 /* tokenizer */
        start local 4 // java.util.StringTokenizer tokenizer
         5: .line 79
            aconst_null
            astore 5 /* quoted */
        start local 5 // java.lang.String quoted
         6: .line 80
            aconst_null
            astore 6 /* pending */
        start local 6 // java.lang.String pending
         7: .line 81
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* tokenList */
        start local 7 // java.util.List tokenList
         8: .line 82
            goto 34
         9: .line 83
      StackMap locals: com.sun.tools.jdi.AbstractLauncher java.lang.String int java.lang.String java.util.StringTokenizer java.lang.String java.lang.String java.util.List
      StackMap stack:
            aload 4 /* tokenizer */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            astore 8 /* token */
        start local 8 // java.lang.String token
        10: .line 84
            aload 5 /* quoted */
            ifnull 17
        11: .line 85
            aload 8 /* token */
            aload 3 /* quoteStr */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        12: .line 86
            aload 7 /* tokenList */
            aload 5 /* quoted */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        13: .line 87
            aconst_null
            astore 5 /* quoted */
        14: .line 88
            goto 34
        15: .line 89
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 5 /* quoted */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* token */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* quoted */
        16: .line 91
            goto 34
      StackMap locals:
      StackMap stack:
        17: aload 6 /* pending */
            ifnull 28
        18: .line 92
            aload 8 /* token */
            aload 3 /* quoteStr */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
        19: .line 93
            aload 6 /* pending */
            astore 5 /* quoted */
        20: .line 94
            goto 26
      StackMap locals:
      StackMap stack:
        21: aload 8 /* token */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpne 25
        22: .line 95
            aload 8 /* token */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isWhitespace:(C)Z
            ifeq 25
        23: .line 96
            aload 7 /* tokenList */
            aload 6 /* pending */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        24: .line 97
            goto 26
        25: .line 98
      StackMap locals:
      StackMap stack:
            new com.sun.jdi.InternalException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected token: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* token */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.sun.jdi.InternalException.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 100
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6 /* pending */
        27: .line 101
            goto 34
        28: .line 102
      StackMap locals:
      StackMap stack:
            aload 8 /* token */
            aload 3 /* quoteStr */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 31
        29: .line 103
            ldc ""
            astore 5 /* quoted */
        30: .line 104
            goto 34
      StackMap locals:
      StackMap stack:
        31: aload 8 /* token */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpne 33
        32: .line 105
            aload 8 /* token */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isWhitespace:(C)Z
            ifne 34
        33: .line 108
      StackMap locals:
      StackMap stack:
            aload 8 /* token */
            astore 6 /* pending */
        end local 8 // java.lang.String token
        34: .line 82
      StackMap locals:
      StackMap stack:
            aload 4 /* tokenizer */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 9
        35: .line 116
            aload 6 /* pending */
            ifnull 37
        36: .line 117
            aload 7 /* tokenList */
            aload 6 /* pending */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        37: .line 124
      StackMap locals:
      StackMap stack:
            aload 5 /* quoted */
            ifnull 39
        38: .line 125
            aload 7 /* tokenList */
            aload 5 /* quoted */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        39: .line 128
      StackMap locals:
      StackMap stack:
            aload 7 /* tokenList */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.String
            astore 8 /* tokenArray */
        start local 8 // java.lang.String[] tokenArray
        40: .line 129
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        41: goto 44
        42: .line 130
      StackMap locals: java.lang.String[] int
      StackMap stack:
            aload 8 /* tokenArray */
            iload 9 /* i */
            aload 7 /* tokenList */
            iload 9 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            aastore
        43: .line 129
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        44: iload 9 /* i */
            aload 7 /* tokenList */
            invokeinterface java.util.List.size:()I
            if_icmplt 42
        end local 9 // int i
        45: .line 132
            aload 8 /* tokenArray */
            areturn
        end local 8 // java.lang.String[] tokenArray
        end local 7 // java.util.List tokenList
        end local 6 // java.lang.String pending
        end local 5 // java.lang.String quoted
        end local 4 // java.util.StringTokenizer tokenizer
        end local 3 // java.lang.String quoteStr
        end local 2 // char quote
        end local 1 // java.lang.String command
        end local 0 // com.sun.tools.jdi.AbstractLauncher this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   46     0        this  Lcom/sun/tools/jdi/AbstractLauncher;
            0   46     1     command  Ljava/lang/String;
            0   46     2       quote  C
            1   46     3    quoteStr  Ljava/lang/String;
            5   46     4   tokenizer  Ljava/util/StringTokenizer;
            6   46     5      quoted  Ljava/lang/String;
            7   46     6     pending  Ljava/lang/String;
            8   46     7   tokenList  Ljava/util/List<Ljava/lang/String;>;
           10   34     8       token  Ljava/lang/String;
           40   46     8  tokenArray  [Ljava/lang/String;
           41   45     9           i  I
    MethodParameters:
         Name  Flags
      command  
      quote    

  protected com.sun.jdi.VirtualMachine launch(java.lang.String[], java.lang.String, com.sun.jdi.connect.spi.TransportService$ListenKey, com.sun.jdi.connect.spi.TransportService);
    descriptor: ([Ljava/lang/String;Ljava/lang/String;Lcom/sun/jdi/connect/spi/TransportService$ListenKey;Lcom/sun/jdi/connect/spi/TransportService;)Lcom/sun/jdi/VirtualMachine;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=7, args_size=5
        start local 0 // com.sun.tools.jdi.AbstractLauncher this
        start local 1 // java.lang.String[] commandArray
        start local 2 // java.lang.String address
        start local 3 // com.sun.jdi.connect.spi.TransportService$ListenKey listenKey
        start local 4 // com.sun.jdi.connect.spi.TransportService ts
         0: .line 139
            new com.sun.tools.jdi.AbstractLauncher$Helper
            dup
            aload 0 /* this */
            aload 1 /* commandArray */
            aload 2 /* address */
            aload 3 /* listenKey */
            aload 4 /* ts */
            invokespecial com.sun.tools.jdi.AbstractLauncher$Helper.<init>:(Lcom/sun/tools/jdi/AbstractLauncher;[Ljava/lang/String;Ljava/lang/String;Lcom/sun/jdi/connect/spi/TransportService$ListenKey;Lcom/sun/jdi/connect/spi/TransportService;)V
            astore 5 /* helper */
        start local 5 // com.sun.tools.jdi.AbstractLauncher$Helper helper
         1: .line 140
            aload 5 /* helper */
            invokevirtual com.sun.tools.jdi.AbstractLauncher$Helper.launchAndAccept:()V
         2: .line 143
            invokestatic com.sun.jdi.Bootstrap.virtualMachineManager:()Lcom/sun/jdi/VirtualMachineManager;
         3: .line 142
            astore 6 /* manager */
        start local 6 // com.sun.jdi.VirtualMachineManager manager
         4: .line 145
            aload 6 /* manager */
            aload 5 /* helper */
            invokevirtual com.sun.tools.jdi.AbstractLauncher$Helper.connection:()Lcom/sun/jdi/connect/spi/Connection;
         5: .line 146
            aload 5 /* helper */
            invokevirtual com.sun.tools.jdi.AbstractLauncher$Helper.process:()Ljava/lang/Process;
         6: .line 145
            invokeinterface com.sun.jdi.VirtualMachineManager.createVirtualMachine:(Lcom/sun/jdi/connect/spi/Connection;Ljava/lang/Process;)Lcom/sun/jdi/VirtualMachine;
            areturn
        end local 6 // com.sun.jdi.VirtualMachineManager manager
        end local 5 // com.sun.tools.jdi.AbstractLauncher$Helper helper
        end local 4 // com.sun.jdi.connect.spi.TransportService ts
        end local 3 // com.sun.jdi.connect.spi.TransportService$ListenKey listenKey
        end local 2 // java.lang.String address
        end local 1 // java.lang.String[] commandArray
        end local 0 // com.sun.tools.jdi.AbstractLauncher this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lcom/sun/tools/jdi/AbstractLauncher;
            0    7     1  commandArray  [Ljava/lang/String;
            0    7     2       address  Ljava/lang/String;
            0    7     3     listenKey  Lcom/sun/jdi/connect/spi/TransportService$ListenKey;
            0    7     4            ts  Lcom/sun/jdi/connect/spi/TransportService;
            1    7     5        helper  Lcom/sun/tools/jdi/AbstractLauncher$Helper;
            4    7     6       manager  Lcom/sun/jdi/VirtualMachineManager;
    Exceptions:
      throws java.io.IOException, com.sun.jdi.connect.VMStartException
    MethodParameters:
              Name  Flags
      commandArray  
      address       
      listenKey     
      ts            
}
SourceFile: "AbstractLauncher.java"
NestMembers:
  com.sun.tools.jdi.AbstractLauncher$Helper  com.sun.tools.jdi.AbstractLauncher$Helper$1  com.sun.tools.jdi.AbstractLauncher$Helper$2
InnerClasses:
  public abstract Argument = com.sun.jdi.connect.Connector$Argument of com.sun.jdi.connect.Connector
  public abstract ListenKey = com.sun.jdi.connect.spi.TransportService$ListenKey of com.sun.jdi.connect.spi.TransportService
  private Helper = com.sun.tools.jdi.AbstractLauncher$Helper of com.sun.tools.jdi.AbstractLauncher