public class sun.misc.Launcher
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.misc.Launcher
  super_class: java.lang.Object
{
  private static java.net.URLStreamHandlerFactory factory;
    descriptor: Ljava/net/URLStreamHandlerFactory;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.misc.Launcher launcher;
    descriptor: Lsun/misc/Launcher;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

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

  private java.lang.ClassLoader loader;
    descriptor: Ljava/lang/ClassLoader;
    flags: (0x0002) ACC_PRIVATE

  private static java.net.URLStreamHandler fileHandler;
    descriptor: Ljava/net/URLStreamHandler;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 57
            new sun.misc.Launcher$Factory
            dup
            invokespecial sun.misc.Launcher$Factory.<init>:()V
            putstatic sun.misc.Launcher.factory:Ljava/net/URLStreamHandlerFactory;
         1: .line 58
            new sun.misc.Launcher
            dup
            invokespecial sun.misc.Launcher.<init>:()V
            putstatic sun.misc.Launcher.launcher:Lsun/misc/Launcher;
         2: .line 60
            ldc "sun.boot.class.path"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
         3: .line 59
            putstatic sun.misc.Launcher.bootClassPath:Ljava/lang/String;
         4: .line 450
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static sun.misc.Launcher getLauncher();
    descriptor: ()Lsun/misc/Launcher;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 63
            getstatic sun.misc.Launcher.launcher:Lsun/misc/Launcher;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // sun.misc.Launcher this
         0: .line 68
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 72
            invokestatic sun.misc.Launcher$ExtClassLoader.getExtClassLoader:()Lsun/misc/Launcher$ExtClassLoader;
            astore 1 /* extcl */
        start local 1 // java.lang.ClassLoader extcl
         2: .line 73
            goto 7
        end local 1 // java.lang.ClassLoader extcl
      StackMap locals: sun.misc.Launcher
      StackMap stack: java.io.IOException
         3: pop
         4: .line 74
            new java.lang.InternalError
            dup
         5: .line 75
            ldc "Could not create extension class loader"
         6: .line 74
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        start local 1 // java.lang.ClassLoader extcl
         7: .line 80
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            aload 0 /* this */
            aload 1 /* extcl */
            invokestatic sun.misc.Launcher$AppClassLoader.getAppClassLoader:(Ljava/lang/ClassLoader;)Ljava/lang/ClassLoader;
            putfield sun.misc.Launcher.loader:Ljava/lang/ClassLoader;
         8: .line 81
            goto 13
      StackMap locals:
      StackMap stack: java.io.IOException
         9: pop
        10: .line 82
            new java.lang.InternalError
            dup
        11: .line 83
            ldc "Could not create application class loader"
        12: .line 82
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 87
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 0 /* this */
            getfield sun.misc.Launcher.loader:Ljava/lang/ClassLoader;
            invokevirtual java.lang.Thread.setContextClassLoader:(Ljava/lang/ClassLoader;)V
        14: .line 90
            ldc "java.security.manager"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* s */
        start local 2 // java.lang.String s
        15: .line 91
            aload 2 /* s */
            ifnull 32
        16: .line 92
            aconst_null
            astore 3 /* sm */
        start local 3 // java.lang.SecurityManager sm
        17: .line 93
            ldc ""
            aload 2 /* s */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 18
            ldc "default"
            aload 2 /* s */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        18: .line 94
      StackMap locals: java.lang.String java.lang.SecurityManager
      StackMap stack:
            new java.lang.SecurityManager
            dup
            invokespecial java.lang.SecurityManager.<init>:()V
            astore 3 /* sm */
        19: .line 95
            goto 26
        20: .line 97
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.misc.Launcher.loader:Ljava/lang/ClassLoader;
            aload 2 /* s */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            checkcast java.lang.SecurityManager
            astore 3 /* sm */
        21: .line 98
            goto 26
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
        22: pop
            goto 26
        23: .line 99
      StackMap locals:
      StackMap stack: java.lang.InstantiationException
            pop
            goto 26
        24: .line 100
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
            goto 26
        25: .line 101
      StackMap locals:
      StackMap stack: java.lang.ClassCastException
            pop
        26: .line 104
      StackMap locals:
      StackMap stack:
            aload 3 /* sm */
            ifnull 29
        27: .line 105
            aload 3 /* sm */
            invokestatic java.lang.System.setSecurityManager:(Ljava/lang/SecurityManager;)V
        28: .line 106
            goto 32
        29: .line 107
      StackMap locals:
      StackMap stack:
            new java.lang.InternalError
            dup
        30: .line 108
            new java.lang.StringBuilder
            dup
            ldc "Could not create SecurityManager: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* s */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        31: .line 107
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.SecurityManager sm
        32: .line 111
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String s
        end local 1 // java.lang.ClassLoader extcl
        end local 0 // sun.misc.Launcher this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   33     0   this  Lsun/misc/Launcher;
            2    3     1  extcl  Ljava/lang/ClassLoader;
            7   33     1  extcl  Ljava/lang/ClassLoader;
           15   33     2      s  Ljava/lang/String;
           17   32     3     sm  Ljava/lang/SecurityManager;
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.IOException
           7     8       9  Class java.io.IOException
          20    21      22  Class java.lang.IllegalAccessException
          20    21      23  Class java.lang.InstantiationException
          20    21      24  Class java.lang.ClassNotFoundException
          20    21      25  Class java.lang.ClassCastException

  public java.lang.ClassLoader getClassLoader();
    descriptor: ()Ljava/lang/ClassLoader;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.misc.Launcher this
         0: .line 117
            aload 0 /* this */
            getfield sun.misc.Launcher.loader:Ljava/lang/ClassLoader;
            areturn
        end local 0 // sun.misc.Launcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/misc/Launcher;

  public static sun.misc.URLClassPath getBootstrapClassPath();
    descriptor: ()Lsun/misc/URLClassPath;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 391
            getstatic sun.misc.Launcher$BootClassPathHolder.bcp:Lsun/misc/URLClassPath;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.net.URL[] pathToURLs(java.io.File[]);
    descriptor: ([Ljava/io/File;)[Ljava/net/URL;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.io.File[] path
         0: .line 395
            aload 0 /* path */
            arraylength
            anewarray java.net.URL
            astore 1 /* urls */
        start local 1 // java.net.URL[] urls
         1: .line 396
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 397
      StackMap locals: java.net.URL[] int
      StackMap stack:
            aload 1 /* urls */
            iload 2 /* i */
            aload 0 /* path */
            iload 2 /* i */
            aaload
            invokestatic sun.misc.Launcher.getFileURL:(Ljava/io/File;)Ljava/net/URL;
            aastore
         4: .line 396
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* path */
            arraylength
            if_icmplt 3
        end local 2 // int i
         6: .line 403
            aload 1 /* urls */
            areturn
        end local 1 // java.net.URL[] urls
        end local 0 // java.io.File[] path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  path  [Ljava/io/File;
            1    7     1  urls  [Ljava/net/URL;
            2    6     2     i  I
    MethodParameters:
      Name  Flags
      path  

  private static java.io.File[] getClassPath(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/io/File;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=1
        start local 0 // java.lang.String cp
         0: .line 408
            aload 0 /* cp */
            ifnull 27
         1: .line 409
            iconst_0
            istore 2 /* count */
        start local 2 // int count
         2: iconst_1
            istore 3 /* maxCount */
        start local 3 // int maxCount
         3: .line 410
            iconst_0
            istore 4 /* pos */
        start local 4 // int pos
         4: iconst_0
            istore 5 /* lastPos */
        start local 5 // int lastPos
         5: .line 412
            goto 8
         6: .line 413
      StackMap locals: java.lang.String top int int int int
      StackMap stack:
            iinc 3 /* maxCount */ 1
         7: .line 414
            iload 4 /* pos */
            iconst_1
            iadd
            istore 5 /* lastPos */
         8: .line 412
      StackMap locals:
      StackMap stack:
            aload 0 /* cp */
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
            iload 5 /* lastPos */
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;I)I
            dup
            istore 4 /* pos */
            iconst_m1
            if_icmpne 6
         9: .line 416
            iload 3 /* maxCount */
            anewarray java.io.File
            astore 1 /* path */
        start local 1 // java.io.File[] path
        10: .line 417
            iconst_0
            dup
            istore 4 /* pos */
            istore 5 /* lastPos */
        11: .line 419
            goto 17
        12: .line 420
      StackMap locals: java.lang.String java.io.File[] int int int int
      StackMap stack:
            iload 4 /* pos */
            iload 5 /* lastPos */
            isub
            ifle 15
        13: .line 421
            aload 1 /* path */
            iload 2 /* count */
            iinc 2 /* count */ 1
            new java.io.File
            dup
            aload 0 /* cp */
            iload 5 /* lastPos */
            iload 4 /* pos */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            aastore
        14: .line 422
            goto 16
        15: .line 424
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            iload 2 /* count */
            iinc 2 /* count */ 1
            new java.io.File
            dup
            ldc "."
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            aastore
        16: .line 426
      StackMap locals:
      StackMap stack:
            iload 4 /* pos */
            iconst_1
            iadd
            istore 5 /* lastPos */
        17: .line 419
      StackMap locals:
      StackMap stack:
            aload 0 /* cp */
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
            iload 5 /* lastPos */
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;I)I
            dup
            istore 4 /* pos */
            iconst_m1
            if_icmpne 12
        18: .line 429
            iload 5 /* lastPos */
            aload 0 /* cp */
            invokevirtual java.lang.String.length:()I
            if_icmpge 21
        19: .line 430
            aload 1 /* path */
            iload 2 /* count */
            iinc 2 /* count */ 1
            new java.io.File
            dup
            aload 0 /* cp */
            iload 5 /* lastPos */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            aastore
        20: .line 431
            goto 22
        21: .line 432
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            iload 2 /* count */
            iinc 2 /* count */ 1
            new java.io.File
            dup
            ldc "."
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            aastore
        22: .line 435
      StackMap locals:
      StackMap stack:
            iload 2 /* count */
            iload 3 /* maxCount */
            if_icmpeq 28
        23: .line 436
            iload 2 /* count */
            anewarray java.io.File
            astore 6 /* tmp */
        start local 6 // java.io.File[] tmp
        24: .line 437
            aload 1 /* path */
            iconst_0
            aload 6 /* tmp */
            iconst_0
            iload 2 /* count */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        25: .line 438
            aload 6 /* tmp */
            astore 1 /* path */
        end local 6 // java.io.File[] tmp
        end local 5 // int lastPos
        end local 4 // int pos
        end local 3 // int maxCount
        end local 2 // int count
        26: .line 440
            goto 28
        end local 1 // java.io.File[] path
        27: .line 441
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_0
            anewarray java.io.File
            astore 1 /* path */
        start local 1 // java.io.File[] path
        28: .line 447
      StackMap locals: java.io.File[]
      StackMap stack:
            aload 1 /* path */
            areturn
        end local 1 // java.io.File[] path
        end local 0 // java.lang.String cp
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   29     0        cp  Ljava/lang/String;
           10   27     1      path  [Ljava/io/File;
           28   29     1      path  [Ljava/io/File;
            2   26     2     count  I
            3   26     3  maxCount  I
            4   26     4       pos  I
            5   26     5   lastPos  I
           24   26     6       tmp  [Ljava/io/File;
    MethodParameters:
      Name  Flags
      cp    

  static java.net.URL getFileURL(java.io.File);
    descriptor: (Ljava/io/File;)Ljava/net/URL;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.io.File file
         0: .line 454
            aload 0 /* file */
            invokevirtual java.io.File.getCanonicalFile:()Ljava/io/File;
            astore 0 /* file */
         1: .line 455
            goto 3
      StackMap locals:
      StackMap stack: java.io.IOException
         2: pop
         3: .line 458
      StackMap locals:
      StackMap stack:
            aload 0 /* file */
            invokestatic sun.net.www.ParseUtil.fileToEncodedURL:(Ljava/io/File;)Ljava/net/URL;
         4: areturn
         5: .line 459
      StackMap locals:
      StackMap stack: java.net.MalformedURLException
            pop
         6: .line 461
            new java.lang.InternalError
            dup
            invokespecial java.lang.InternalError.<init>:()V
            athrow
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  file  Ljava/io/File;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
           3     4       5  Class java.net.MalformedURLException
    MethodParameters:
      Name  Flags
      file  
}
SourceFile: "Launcher.java"
NestMembers:
  sun.misc.Launcher$AppClassLoader  sun.misc.Launcher$AppClassLoader$1  sun.misc.Launcher$BootClassPathHolder  sun.misc.Launcher$BootClassPathHolder$1  sun.misc.Launcher$ExtClassLoader  sun.misc.Launcher$ExtClassLoader$1  sun.misc.Launcher$Factory
InnerClasses:
  AppClassLoader = sun.misc.Launcher$AppClassLoader of sun.misc.Launcher
  private BootClassPathHolder = sun.misc.Launcher$BootClassPathHolder of sun.misc.Launcher
  ExtClassLoader = sun.misc.Launcher$ExtClassLoader of sun.misc.Launcher
  private Factory = sun.misc.Launcher$Factory of sun.misc.Launcher