public class io.vertx.core.impl.launcher.commands.ExecUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.core.impl.launcher.commands.ExecUtils
  super_class: java.lang.Object
{
  private static final java.lang.String SINGLE_QUOTE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "'"

  private static final java.lang.String DOUBLE_QUOTE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "\""

  public static final int VERTX_INITIALIZATION_EXIT_CODE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 11

  public static final int VERTX_DEPLOYMENT_EXIT_CODE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 15

  public static final int PROCESS_ERROR_EXIT_CODE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 12

  public static final int SYSTEM_CONFIGURATION_EXIT_CODE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 14

  private static java.lang.String osName;
    descriptor: Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 62
            ldc "os.name"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            putstatic io.vertx.core.impl.launcher.commands.ExecUtils.osName:Ljava/lang/String;
            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 // io.vertx.core.impl.launcher.commands.ExecUtils this
         0: .line 23
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // io.vertx.core.impl.launcher.commands.ExecUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/impl/launcher/commands/ExecUtils;

  public static java.lang.String quoteArgument(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.lang.String argument
         0: .line 78
            aload 0 /* argument */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 1 /* cleanedArgument */
        start local 1 // java.lang.String cleanedArgument
         1: .line 81
            goto 3
         2: .line 83
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* cleanedArgument */
            iconst_1
            aload 1 /* cleanedArgument */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* cleanedArgument */
         3: .line 81
      StackMap locals:
      StackMap stack:
            aload 1 /* cleanedArgument */
            ldc "'"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 4
            aload 1 /* cleanedArgument */
            ldc "'"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 2
         4: .line 82
      StackMap locals:
      StackMap stack:
            aload 1 /* cleanedArgument */
            ldc "\""
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 5
            aload 1 /* cleanedArgument */
            ldc "\""
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 2
         5: .line 86
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* buf */
        start local 2 // java.lang.StringBuilder buf
         6: .line 87
            aload 1 /* cleanedArgument */
            ldc "\""
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 18
         7: .line 88
            aload 1 /* cleanedArgument */
            ldc "'"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 11
         8: .line 89
            new java.lang.IllegalArgumentException
            dup
         9: .line 90
            ldc "Can't handle single and double quotes in same argument"
        10: .line 89
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 92
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            invokestatic io.vertx.core.impl.Utils.isWindows:()Z
            ifeq 13
        12: .line 93
            aload 2 /* buf */
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* cleanedArgument */
            ldc "\""
            ldc "\\\""
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        13: .line 95
      StackMap locals:
      StackMap stack:
            aload 2 /* buf */
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* cleanedArgument */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 96
            ldc "'"
        15: .line 95
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        16: .line 96
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        17: .line 95
            areturn
        18: .line 98
      StackMap locals:
      StackMap stack:
            aload 1 /* cleanedArgument */
            ldc "'"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifne 20
        19: .line 99
            aload 1 /* cleanedArgument */
            ldc " "
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 25
        20: .line 100
      StackMap locals:
      StackMap stack:
            aload 2 /* buf */
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* cleanedArgument */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        21: .line 101
            ldc "\""
        22: .line 100
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        23: .line 101
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        24: .line 100
            areturn
        25: .line 103
      StackMap locals:
      StackMap stack:
            aload 1 /* cleanedArgument */
            areturn
        end local 2 // java.lang.StringBuilder buf
        end local 1 // java.lang.String cleanedArgument
        end local 0 // java.lang.String argument
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   26     0         argument  Ljava/lang/String;
            1   26     1  cleanedArgument  Ljava/lang/String;
            6   26     2              buf  Ljava/lang/StringBuilder;
    MethodParameters:
          Name  Flags
      argument  final

  public static void addArgument(java.util.List<java.lang.String>, java.lang.String);
    descriptor: (Ljava/util/List;Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.List args
        start local 1 // java.lang.String argument
         0: .line 114
            aload 0 /* args */
            aload 1 /* argument */
            invokestatic io.vertx.core.impl.launcher.commands.ExecUtils.quoteArgument:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 115
            return
        end local 1 // java.lang.String argument
        end local 0 // java.util.List args
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      args  Ljava/util/List<Ljava/lang/String;>;
            0    2     1  argument  Ljava/lang/String;
    Signature: (Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;)V
    MethodParameters:
          Name  Flags
      args      
      argument  

  public static boolean isWindows();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 121
            getstatic io.vertx.core.impl.launcher.commands.ExecUtils.osName:Ljava/lang/String;
            ldc "windows"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static boolean isLinux();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 128
            getstatic io.vertx.core.impl.launcher.commands.ExecUtils.osName:Ljava/lang/String;
            ldc "nux"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void exit(int);
    descriptor: (I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int code
         0: .line 138
            iload 0 /* code */
            invokestatic java.lang.System.exit:(I)V
         1: .line 139
            return
        end local 0 // int code
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  code  I
    MethodParameters:
      Name  Flags
      code  

  public static void exitBecauseOfVertxInitializationIssue();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 145
            bipush 11
            invokestatic io.vertx.core.impl.launcher.commands.ExecUtils.exit:(I)V
         1: .line 146
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void exitBecauseOfVertxDeploymentIssue();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 152
            bipush 15
            invokestatic io.vertx.core.impl.launcher.commands.ExecUtils.exit:(I)V
         1: .line 153
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void exitBecauseOfProcessIssue();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 159
            bipush 12
            invokestatic io.vertx.core.impl.launcher.commands.ExecUtils.exit:(I)V
         1: .line 160
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void exitBecauseOfSystemConfigurationIssue();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 166
            bipush 14
            invokestatic io.vertx.core.impl.launcher.commands.ExecUtils.exit:(I)V
         1: .line 167
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "ExecUtils.java"