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 53
            new sun.misc.Launcher$Factory
            dup
            invokespecial sun.misc.Launcher$Factory.<init>:()V
            putstatic sun.misc.Launcher.factory:Ljava/net/URLStreamHandlerFactory;
         1: .line 54
            new sun.misc.Launcher
            dup
            invokespecial sun.misc.Launcher.<init>:()V
            putstatic sun.misc.Launcher.launcher:Lsun/misc/Launcher;
         2: .line 56
            ldc "sun.boot.class.path"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
         3: .line 55
            putstatic sun.misc.Launcher.bootClassPath:Ljava/lang/String;
         4: .line 497
            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 59
            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 64
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 68
            invokestatic sun.misc.Launcher$ExtClassLoader.getExtClassLoader:()Lsun/misc/Launcher$ExtClassLoader;
            astore 1 /* extcl */
        start local 1 // java.lang.ClassLoader extcl
         2: .line 69
            goto 7
        end local 1 // java.lang.ClassLoader extcl
      StackMap locals: sun.misc.Launcher
      StackMap stack: java.io.IOException
         3: astore 2 /* e */
        start local 2 // java.io.IOException e
         4: .line 70
            new java.lang.InternalError
            dup
         5: .line 71
            ldc "Could not create extension class loader"
            aload 2 /* e */
         6: .line 70
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.io.IOException e
        start local 1 // java.lang.ClassLoader extcl
         7: .line 76
      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 77
            goto 13
      StackMap locals:
      StackMap stack: java.io.IOException
         9: astore 2 /* e */
        start local 2 // java.io.IOException e
        10: .line 78
            new java.lang.InternalError
            dup
        11: .line 79
            ldc "Could not create application class loader"
            aload 2 /* e */
        12: .line 78
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.io.IOException e
        13: .line 83
      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 86
            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 87
            aload 2 /* s */
            ifnull 33
        16: .line 89
            invokestatic sun.nio.fs.DefaultFileSystemProvider.create:()Ljava/nio/file/spi/FileSystemProvider;
            pop
        17: .line 91
            aconst_null
            astore 3 /* sm */
        start local 3 // java.lang.SecurityManager sm
        18: .line 92
            ldc ""
            aload 2 /* s */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 19
            ldc "default"
            aload 2 /* s */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
        19: .line 93
      StackMap locals: java.lang.String java.lang.SecurityManager
      StackMap stack:
            new java.lang.SecurityManager
            dup
            invokespecial java.lang.SecurityManager.<init>:()V
            astore 3 /* sm */
        20: .line 94
            goto 27
        21: .line 96
      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 */
        22: .line 97
            goto 27
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
        23: pop
            goto 27
        24: .line 98
      StackMap locals:
      StackMap stack: java.lang.InstantiationException
            pop
            goto 27
        25: .line 99
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
            goto 27
        26: .line 100
      StackMap locals:
      StackMap stack: java.lang.ClassCastException
            pop
        27: .line 103
      StackMap locals:
      StackMap stack:
            aload 3 /* sm */
            ifnull 30
        28: .line 104
            aload 3 /* sm */
            invokestatic java.lang.System.setSecurityManager:(Ljava/lang/SecurityManager;)V
        29: .line 105
            goto 33
        30: .line 106
      StackMap locals:
      StackMap stack:
            new java.lang.InternalError
            dup
        31: .line 107
            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;
        32: .line 106
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.SecurityManager sm
        33: .line 110
      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   34     0   this  Lsun/misc/Launcher;
            2    3     1  extcl  Ljava/lang/ClassLoader;
            7   34     1  extcl  Ljava/lang/ClassLoader;
            4    7     2      e  Ljava/io/IOException;
           10   13     2      e  Ljava/io/IOException;
           15   34     2      s  Ljava/lang/String;
           18   33     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
          21    22      23  Class java.lang.IllegalAccessException
          21    22      24  Class java.lang.InstantiationException
          21    22      25  Class java.lang.ClassNotFoundException
          21    22      26  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 116
            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 438
            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 442
            aload 0 /* path */
            arraylength
            anewarray java.net.URL
            astore 1 /* urls */
        start local 1 // java.net.URL[] urls
         1: .line 443
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 444
      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 443
            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 450
            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 455
            aload 0 /* cp */
            ifnull 27
         1: .line 456
            iconst_0
            istore 2 /* count */
        start local 2 // int count
         2: iconst_1
            istore 3 /* maxCount */
        start local 3 // int maxCount
         3: .line 457
            iconst_0
            istore 4 /* pos */
        start local 4 // int pos
         4: iconst_0
            istore 5 /* lastPos */
        start local 5 // int lastPos
         5: .line 459
            goto 8
         6: .line 460
      StackMap locals: java.lang.String top int int int int
      StackMap stack:
            iinc 3 /* maxCount */ 1
         7: .line 461
            iload 4 /* pos */
            iconst_1
            iadd
            istore 5 /* lastPos */
         8: .line 459
      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 463
            iload 3 /* maxCount */
            anewarray java.io.File
            astore 1 /* path */
        start local 1 // java.io.File[] path
        10: .line 464
            iconst_0
            dup
            istore 4 /* pos */
            istore 5 /* lastPos */
        11: .line 466
            goto 17
        12: .line 467
      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 468
            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 469
            goto 16
        15: .line 471
      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 473
      StackMap locals:
      StackMap stack:
            iload 4 /* pos */
            iconst_1
            iadd
            istore 5 /* lastPos */
        17: .line 466
      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 476
            iload 5 /* lastPos */
            aload 0 /* cp */
            invokevirtual java.lang.String.length:()I
            if_icmpge 21
        19: .line 477
            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 478
            goto 22
        21: .line 479
      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 482
      StackMap locals:
      StackMap stack:
            iload 2 /* count */
            iload 3 /* maxCount */
            if_icmpeq 28
        23: .line 483
            iload 2 /* count */
            anewarray java.io.File
            astore 6 /* tmp */
        start local 6 // java.io.File[] tmp
        24: .line 484
            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 485
            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 487
            goto 28
        end local 1 // java.io.File[] path
        27: .line 488
      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 494
      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=3, locals=2, args_size=1
        start local 0 // java.io.File file
         0: .line 501
            aload 0 /* file */
            invokevirtual java.io.File.getCanonicalFile:()Ljava/io/File;
            astore 0 /* file */
         1: .line 502
            goto 3
      StackMap locals:
      StackMap stack: java.io.IOException
         2: pop
         3: .line 505
      StackMap locals:
      StackMap stack:
            aload 0 /* file */
            invokestatic sun.net.www.ParseUtil.fileToEncodedURL:(Ljava/io/File;)Ljava/net/URL;
         4: areturn
         5: .line 506
      StackMap locals:
      StackMap stack: java.net.MalformedURLException
            astore 1 /* e */
        start local 1 // java.net.MalformedURLException e
         6: .line 508
            new java.lang.InternalError
            dup
            aload 1 /* e */
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.net.MalformedURLException e
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  file  Ljava/io/File;
            6    7     1     e  Ljava/net/MalformedURLException;
      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