public final class jdk.tools.jlink.builder.DefaultImageBuilder implements jdk.tools.jlink.builder.ImageBuilder
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: jdk.tools.jlink.builder.DefaultImageBuilder
super_class: java.lang.Object
{
public static final java.lang.String BIN_DIRNAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "bin"
public static final java.lang.String CONF_DIRNAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "conf"
public static final java.lang.String INCLUDE_DIRNAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "include"
public static final java.lang.String LIB_DIRNAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "lib"
public static final java.lang.String LEGAL_DIRNAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "legal"
public static final java.lang.String MAN_DIRNAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "man"
private final java.nio.file.Path root;
descriptor: Ljava/nio/file/Path;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Map<java.lang.String, java.lang.String> launchers;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
private final java.nio.file.Path mdir;
descriptor: Ljava/nio/file/Path;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Set<java.lang.String> modules;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
private jdk.tools.jlink.internal.Platform targetPlatform;
descriptor: Ljdk/tools/jlink/internal/Platform;
flags: (0x0002) ACC_PRIVATE
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$jdk$tools$jlink$plugin$ResourcePoolEntry$Type;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Ljdk/tools/jlink/builder/DefaultImageBuilder;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic jdk.tools.jlink.builder.DefaultImageBuilder.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.nio.file.Path, java.util.Map<java.lang.String, java.lang.String>);
descriptor: (Ljava/nio/file/Path;Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield jdk.tools.jlink.builder.DefaultImageBuilder.modules:Ljava/util/Set;
2: aload 0
aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.nio.file.Path
putfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
3: aload 0
aload 2
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Map
putfield jdk.tools.jlink.builder.DefaultImageBuilder.launchers:Ljava/util/Map;
4: aload 0
aload 1
ldc "lib"
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
putfield jdk.tools.jlink.builder.DefaultImageBuilder.mdir:Ljava/nio/file/Path;
5: aload 0
getfield jdk.tools.jlink.builder.DefaultImageBuilder.mdir:Ljava/nio/file/Path;
iconst_0
anewarray java.nio.file.attribute.FileAttribute
invokestatic java.nio.file.Files.createDirectories:(Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
pop
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/tools/jlink/builder/DefaultImageBuilder;
0 7 1 root Ljava/nio/file/Path;
0 7 2 launchers Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
Exceptions:
throws java.io.IOException
Signature: (Ljava/nio/file/Path;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
MethodParameters:
Name Flags
root
launchers
public void storeFiles(jdk.tools.jlink.plugin.ResourcePool);
descriptor: (Ljdk/tools/jlink/plugin/ResourcePool;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePool.moduleView:()Ljdk/tools/jlink/plugin/ResourcePoolModuleView;
1: ldc "java.base"
invokeinterface jdk.tools.jlink.plugin.ResourcePoolModuleView.findModule:(Ljava/lang/String;)Ljava/util/Optional;
2: invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
jdk/tools/jlink/plugin/ResourcePoolModule.targetPlatform()Ljava/lang/String; (9 itf)
(Ljdk/tools/jlink/plugin/ResourcePoolModule;)Ljava/lang/String;
invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
3: aconst_null
invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
4: astore 2
start local 2 5: aload 2
ifnonnull 7
6: new jdk.tools.jlink.plugin.PluginException
dup
ldc "ModuleTarget attribute is missing for java.base module"
invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: java.lang.String
StackMap stack:
aload 0
aload 2
invokestatic jdk.tools.jlink.internal.Platform.toPlatform:(Ljava/lang/String;)Ljdk/tools/jlink/internal/Platform;
putfield jdk.tools.jlink.builder.DefaultImageBuilder.targetPlatform:Ljdk/tools/jlink/internal/Platform;
8: aload 0
aload 1
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.checkResourcePool:(Ljdk/tools/jlink/plugin/ResourcePool;)V
9: aload 0
getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
ldc "bin"
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
astore 3
start local 3 10: aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePool.entries:()Ljava/util/stream/Stream;
11: invokedynamic test()Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
jdk/tools/jlink/builder/DefaultImageBuilder.lambda$1(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z (6)
(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
12: aload 0
invokedynamic accept(Ljdk/tools/jlink/builder/DefaultImageBuilder;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
jdk/tools/jlink/builder/DefaultImageBuilder.lambda$2(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V (7)
(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
13: aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePool.moduleView:()Ljdk/tools/jlink/plugin/ResourcePoolModuleView;
invokeinterface jdk.tools.jlink.plugin.ResourcePoolModuleView.modules:()Ljava/util/stream/Stream;
aload 0
invokedynamic accept(Ljdk/tools/jlink/builder/DefaultImageBuilder;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
jdk/tools/jlink/builder/DefaultImageBuilder.lambda$3(Ljdk/tools/jlink/plugin/ResourcePoolModule;)V (7)
(Ljdk/tools/jlink/plugin/ResourcePoolModule;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
14: aload 0
getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.getFileSystem:()Ljava/nio/file/FileSystem;
invokevirtual java.nio.file.FileSystem.supportedFileAttributeViews:()Ljava/util/Set;
15: ldc "posix"
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 27
16: aload 3
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
ifeq 19
17: aload 3
iconst_2
invokedynamic test()Ljava/util/function/BiPredicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)Z
jdk/tools/jlink/builder/DefaultImageBuilder.lambda$4(Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z (6)
(Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z
iconst_0
anewarray java.nio.file.FileVisitOption
invokestatic java.nio.file.Files.find:(Ljava/nio/file/Path;ILjava/util/function/BiPredicate;[Ljava/nio/file/FileVisitOption;)Ljava/util/stream/Stream;
18: aload 0
invokedynamic accept(Ljdk/tools/jlink/builder/DefaultImageBuilder;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
jdk/tools/jlink/builder/DefaultImageBuilder.setExecutable(Ljava/nio/file/Path;)V (7)
(Ljava/nio/file/Path;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
19: StackMap locals: java.nio.file.Path
StackMap stack:
aload 0
getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
ldc "lib"
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
astore 5
start local 5 20: aload 5
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
ifeq 23
21: aload 5
iconst_2
invokedynamic test()Ljava/util/function/BiPredicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)Z
jdk/tools/jlink/builder/DefaultImageBuilder.lambda$6(Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z (6)
(Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z
iconst_0
anewarray java.nio.file.FileVisitOption
invokestatic java.nio.file.Files.find:(Ljava/nio/file/Path;ILjava/util/function/BiPredicate;[Ljava/nio/file/FileVisitOption;)Ljava/util/stream/Stream;
22: aload 0
invokedynamic accept(Ljdk/tools/jlink/builder/DefaultImageBuilder;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
jdk/tools/jlink/builder/DefaultImageBuilder.setExecutable(Ljava/nio/file/Path;)V (7)
(Ljava/nio/file/Path;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
23: StackMap locals: jdk.tools.jlink.builder.DefaultImageBuilder jdk.tools.jlink.plugin.ResourcePool java.lang.String java.nio.file.Path top java.nio.file.Path
StackMap stack:
aload 0
getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
ldc "legal"
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
astore 7
start local 7 24: aload 7
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
ifeq 27
25: aload 7
iconst_2
invokedynamic test()Ljava/util/function/BiPredicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)Z
jdk/tools/jlink/builder/DefaultImageBuilder.lambda$8(Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z (6)
(Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z
iconst_0
anewarray java.nio.file.FileVisitOption
invokestatic java.nio.file.Files.find:(Ljava/nio/file/Path;ILjava/util/function/BiPredicate;[Ljava/nio/file/FileVisitOption;)Ljava/util/stream/Stream;
26: aload 0
invokedynamic accept(Ljdk/tools/jlink/builder/DefaultImageBuilder;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
jdk/tools/jlink/builder/DefaultImageBuilder.setReadOnly(Ljava/nio/file/Path;)V (7)
(Ljava/nio/file/Path;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
end local 7 end local 5 27: StackMap locals: jdk.tools.jlink.builder.DefaultImageBuilder jdk.tools.jlink.plugin.ResourcePool java.lang.String java.nio.file.Path
StackMap stack:
aload 3
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
ifeq 32
28: aload 0
aload 1
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.prepareApplicationFiles:(Ljdk/tools/jlink/plugin/ResourcePool;)V
end local 3 end local 2 29: goto 32
StackMap locals: jdk.tools.jlink.builder.DefaultImageBuilder jdk.tools.jlink.plugin.ResourcePool
StackMap stack: java.io.IOException
30: astore 2
start local 2 31: new jdk.tools.jlink.plugin.PluginException
dup
aload 2
invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 32: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Ljdk/tools/jlink/builder/DefaultImageBuilder;
0 33 1 files Ljdk/tools/jlink/plugin/ResourcePool;
5 29 2 value Ljava/lang/String;
10 29 3 bin Ljava/nio/file/Path;
20 27 5 lib Ljava/nio/file/Path;
24 27 7 legal Ljava/nio/file/Path;
31 32 2 ex Ljava/io/IOException;
Exception table:
from to target type
0 29 30 Class java.io.IOException
MethodParameters:
Name Flags
files
private void checkResourcePool(jdk.tools.jlink.plugin.ResourcePool);
descriptor: (Ljdk/tools/jlink/plugin/ResourcePool;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.checkDuplicateResources:(Ljdk/tools/jlink/plugin/ResourcePool;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/tools/jlink/builder/DefaultImageBuilder;
0 2 1 pool Ljdk/tools/jlink/plugin/ResourcePool;
MethodParameters:
Name Flags
pool
private void checkDuplicateResources(jdk.tools.jlink.plugin.ResourcePool);
descriptor: (Ljdk/tools/jlink/plugin/ResourcePool;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 2
start local 2 1: aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePool.entries:()Ljava/util/stream/Stream;
2: invokedynamic test()Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
jdk/tools/jlink/builder/DefaultImageBuilder.lambda$10(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z (6)
(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
3: aload 0
invokedynamic apply(Ljdk/tools/jlink/builder/DefaultImageBuilder;)Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
jdk/tools/jlink/builder/DefaultImageBuilder.entryToImagePath(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/nio/file/Path; (7)
(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/nio/file/Path;
4: invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
jdk/tools/jlink/plugin/ResourcePoolEntry.moduleName()Ljava/lang/String; (9 itf)
(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/lang/String;
invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
invokestatic java.util.stream.Collectors.mapping:(Ljava/util/function/Function;Ljava/util/stream/Collector;)Ljava/util/stream/Collector;
5: invokestatic java.util.stream.Collectors.groupingBy:(Ljava/util/function/Function;Ljava/util/stream/Collector;)Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.util.Map
6: invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
7: invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
8: invokedynamic test()Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
jdk/tools/jlink/builder/DefaultImageBuilder.lambda$13(Ljava/util/Map$Entry;)Z (6)
(Ljava/util/Map$Entry;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
9: aload 2
invokedynamic accept(Ljava/util/Map;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
jdk/tools/jlink/builder/DefaultImageBuilder.lambda$14(Ljava/util/Map;Ljava/util/Map$Entry;)V (6)
(Ljava/util/Map$Entry;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
10: aload 2
invokeinterface java.util.Map.isEmpty:()Z
ifne 12
11: new jdk.tools.jlink.plugin.PluginException
dup
new java.lang.StringBuilder
dup
ldc "Duplicate resources: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals: java.util.Map
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljdk/tools/jlink/builder/DefaultImageBuilder;
0 13 1 pool Ljdk/tools/jlink/plugin/ResourcePool;
1 13 2 duplicates Ljava/util/Map<Ljava/nio/file/Path;Ljava/util/Set<Ljava/lang/String;>;>;
MethodParameters:
Name Flags
pool
protected void prepareApplicationFiles(jdk.tools.jlink.plugin.ResourcePool);
descriptor: (Ljdk/tools/jlink/plugin/ResourcePool;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=15, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.tools.jlink.builder.DefaultImageBuilder.launchers:Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 81
StackMap locals: jdk.tools.jlink.builder.DefaultImageBuilder jdk.tools.jlink.plugin.ResourcePool top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 2
start local 2 2: aload 2
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 3: aload 4
ldc "/"
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 5
start local 5 4: iload 5
iconst_m1
if_icmpne 8
5: aload 4
astore 6
start local 6 6: aconst_null
astore 7
start local 7 7: goto 12
end local 7 end local 6 8: StackMap locals: jdk.tools.jlink.builder.DefaultImageBuilder jdk.tools.jlink.plugin.ResourcePool java.util.Map$Entry java.util.Iterator java.lang.String int
StackMap stack:
aload 4
iconst_0
iload 5
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 6
start local 6 9: getstatic jdk.tools.jlink.builder.DefaultImageBuilder.$assertionsDisabled:Z
ifne 10
aload 6
invokevirtual java.lang.String.isEmpty:()Z
ifeq 10
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
10: StackMap locals: java.lang.String
StackMap stack:
aload 4
iload 5
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 7
start local 7 11: getstatic jdk.tools.jlink.builder.DefaultImageBuilder.$assertionsDisabled:Z
ifne 12
aload 7
invokevirtual java.lang.String.isEmpty:()Z
ifeq 12
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
12: StackMap locals: java.lang.String
StackMap stack:
aload 7
ifnonnull 21
13: new java.lang.StringBuilder
dup
ldc "/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "/module-info.class"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
start local 8 14: aload 1
aload 8
invokeinterface jdk.tools.jlink.plugin.ResourcePool.findEntry:(Ljava/lang/String;)Ljava/util/Optional;
astore 9
start local 9 15: aload 9
invokevirtual java.util.Optional.isPresent:()Z
ifne 17
16: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "module-info.class not found for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " module"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals: java.lang.String java.util.Optional
StackMap stack:
new java.io.ByteArrayInputStream
dup
aload 9
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast jdk.tools.jlink.plugin.ResourcePoolEntry
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.contentBytes:()[B
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
astore 10
start local 10 18: aload 10
invokestatic java.lang.module.ModuleDescriptor.read:(Ljava/io/InputStream;)Ljava/lang/module/ModuleDescriptor;
invokevirtual java.lang.module.ModuleDescriptor.mainClass:()Ljava/util/Optional;
astore 11
start local 11 19: aload 11
invokevirtual java.util.Optional.isPresent:()Z
ifeq 21
20: aload 11
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast java.lang.String
astore 7
end local 11 end local 10 end local 9 end local 8 21: StackMap locals:
StackMap stack:
aload 7
ifnull 80
22: aload 1
new java.lang.StringBuilder
dup
ldc "/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
23: aload 7
bipush 46
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ".class"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
24: invokeinterface jdk.tools.jlink.plugin.ResourcePool.findEntry:(Ljava/lang/String;)Ljava/util/Optional;
25: invokevirtual java.util.Optional.isPresent:()Z
ifne 27
26: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
aload 6
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " does not have main class: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
27: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
astore 8
start local 8 28: aload 0
getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
ldc "bin"
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
aload 8
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
astore 9
start local 9 29: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 10
start local 10 30: aload 10
ldc "#!/bin/sh"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
31: ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
32: aload 10
ldc "JLINK_VM_OPTIONS="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
33: ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
34: aload 10
ldc "DIR=`dirname $0`"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
35: ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
36: aload 10
ldc "$DIR/java $JLINK_VM_OPTIONS -m "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
37: aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 47
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
38: aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
39: ldc " \"$@\"\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
40: aconst_null
astore 11
aconst_null
astore 12
41: aload 9
42: getstatic java.nio.charset.StandardCharsets.ISO_8859_1:Ljava/nio/charset/Charset;
iconst_1
anewarray java.nio.file.OpenOption
dup
iconst_0
43: getstatic java.nio.file.StandardOpenOption.CREATE_NEW:Ljava/nio/file/StandardOpenOption;
aastore
44: invokestatic java.nio.file.Files.newBufferedWriter:(Ljava/nio/file/Path;Ljava/nio/charset/Charset;[Ljava/nio/file/OpenOption;)Ljava/io/BufferedWriter;
astore 13
start local 13 45: aload 13
aload 10
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
46: aload 13
ifnull 52
aload 13
invokevirtual java.io.BufferedWriter.close:()V
goto 52
StackMap locals: jdk.tools.jlink.builder.DefaultImageBuilder jdk.tools.jlink.plugin.ResourcePool java.util.Map$Entry java.util.Iterator java.lang.String int java.lang.String java.lang.String java.lang.String java.nio.file.Path java.lang.StringBuilder java.lang.Throwable java.lang.Throwable java.io.BufferedWriter
StackMap stack: java.lang.Throwable
47: astore 11
aload 13
ifnull 48
aload 13
invokevirtual java.io.BufferedWriter.close:()V
end local 13 StackMap locals:
StackMap stack:
48: aload 11
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
49: astore 12
aload 11
ifnonnull 50
aload 12
astore 11
goto 51
StackMap locals:
StackMap stack:
50: aload 11
aload 12
if_acmpeq 51
aload 11
aload 12
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
51: aload 11
athrow
52: StackMap locals:
StackMap stack:
aload 0
getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
ldc "bin"
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.getFileSystem:()Ljava/nio/file/FileSystem;
53: invokevirtual java.nio.file.FileSystem.supportedFileAttributeViews:()Ljava/util/Set;
ldc "posix"
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 55
54: aload 0
aload 9
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.setExecutable:(Ljava/nio/file/Path;)V
55: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.isWindows:()Z
ifeq 81
56: aload 0
getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
ldc "bin"
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
new java.lang.StringBuilder
dup
aload 8
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".bat"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
astore 11
start local 11 57: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 10
58: aload 10
ldc "@echo off"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
59: ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
60: aload 10
ldc "set JLINK_VM_OPTIONS="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
61: ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
62: aload 10
ldc "set DIR=%~dp0"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
63: ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
64: aload 10
ldc "\"%DIR%\\java\" %JLINK_VM_OPTIONS% -m "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
65: aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 47
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
66: aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
67: ldc " %*\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
68: aconst_null
astore 12
aconst_null
astore 13
69: aload 11
70: getstatic java.nio.charset.StandardCharsets.ISO_8859_1:Ljava/nio/charset/Charset;
iconst_1
anewarray java.nio.file.OpenOption
dup
iconst_0
71: getstatic java.nio.file.StandardOpenOption.CREATE_NEW:Ljava/nio/file/StandardOpenOption;
aastore
72: invokestatic java.nio.file.Files.newBufferedWriter:(Ljava/nio/file/Path;Ljava/nio/charset/Charset;[Ljava/nio/file/OpenOption;)Ljava/io/BufferedWriter;
astore 14
start local 14 73: aload 14
aload 10
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
74: aload 14
ifnull 81
aload 14
invokevirtual java.io.BufferedWriter.close:()V
goto 81
StackMap locals: jdk.tools.jlink.builder.DefaultImageBuilder jdk.tools.jlink.plugin.ResourcePool java.util.Map$Entry java.util.Iterator java.lang.String int java.lang.String java.lang.String java.lang.String java.nio.file.Path java.lang.StringBuilder java.nio.file.Path java.lang.Throwable java.lang.Throwable java.io.BufferedWriter
StackMap stack: java.lang.Throwable
75: astore 12
aload 14
ifnull 76
aload 14
invokevirtual java.io.BufferedWriter.close:()V
end local 14 StackMap locals:
StackMap stack:
76: aload 12
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
77: astore 13
aload 12
ifnonnull 78
aload 13
astore 12
goto 79
StackMap locals:
StackMap stack:
78: aload 12
aload 13
if_acmpeq 79
aload 12
aload 13
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
79: aload 12
athrow
end local 11 end local 10 end local 9 end local 8 80: StackMap locals: jdk.tools.jlink.builder.DefaultImageBuilder jdk.tools.jlink.plugin.ResourcePool java.util.Map$Entry java.util.Iterator java.lang.String int java.lang.String java.lang.String
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
aload 6
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " doesn't contain main class & main not specified in command line"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 7 end local 6 end local 5 end local 4 end local 2 81: StackMap locals: jdk.tools.jlink.builder.DefaultImageBuilder jdk.tools.jlink.plugin.ResourcePool top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
82: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 83 0 this Ljdk/tools/jlink/builder/DefaultImageBuilder;
0 83 1 imageContent Ljdk/tools/jlink/plugin/ResourcePool;
2 81 2 entry Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
3 81 4 launcherEntry Ljava/lang/String;
4 81 5 slashIdx I
6 8 6 module Ljava/lang/String;
9 81 6 module Ljava/lang/String;
7 8 7 mainClassName Ljava/lang/String;
11 81 7 mainClassName Ljava/lang/String;
14 21 8 path Ljava/lang/String;
15 21 9 res Ljava/util/Optional<Ljdk/tools/jlink/plugin/ResourcePoolEntry;>;
18 21 10 stream Ljava/io/ByteArrayInputStream;
19 21 11 mainClass Ljava/util/Optional<Ljava/lang/String;>;
28 80 8 launcherFile Ljava/lang/String;
29 80 9 cmd Ljava/nio/file/Path;
30 80 10 sb Ljava/lang/StringBuilder;
45 48 13 writer Ljava/io/BufferedWriter;
57 80 11 bat Ljava/nio/file/Path;
73 76 14 writer Ljava/io/BufferedWriter;
Exception table:
from to target type
45 46 47 any
41 49 49 any
73 74 75 any
69 77 77 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
imageContent
public java.io.DataOutputStream getJImageOutputStream();
descriptor: ()Ljava/io/DataOutputStream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
getfield jdk.tools.jlink.builder.DefaultImageBuilder.mdir:Ljava/nio/file/Path;
ldc "modules"
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
astore 1
start local 1 1: aload 1
iconst_0
anewarray java.nio.file.OpenOption
invokestatic java.nio.file.Files.newOutputStream:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/OutputStream;
astore 2
start local 2 2: new java.io.BufferedOutputStream
dup
aload 2
invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 3
start local 3 3: new java.io.DataOutputStream
dup
aload 3
invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
4: areturn
end local 3 end local 2 end local 1 5: StackMap locals:
StackMap stack: java.io.IOException
astore 1
start local 1 6: new java.io.UncheckedIOException
dup
aload 1
invokespecial java.io.UncheckedIOException.<init>:(Ljava/io/IOException;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/tools/jlink/builder/DefaultImageBuilder;
1 5 1 jimageFile Ljava/nio/file/Path;
2 5 2 fos Ljava/io/OutputStream;
3 5 3 bos Ljava/io/BufferedOutputStream;
6 7 1 ex Ljava/io/IOException;
Exception table:
from to target type
0 4 5 Class java.io.IOException
private java.lang.String entryToFileName(jdk.tools.jlink.plugin.ResourcePoolEntry);
descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.type:()Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.CLASS_OR_RESOURCE:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
if_acmpne 2
1: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "invalid type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.moduleName:()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;
astore 2
start local 2 3: aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
aload 2
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 3
start local 3 4: aload 3
aload 3
bipush 47
invokevirtual java.lang.String.indexOf:(I)I
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/tools/jlink/builder/DefaultImageBuilder;
0 5 1 entry Ljdk/tools/jlink/plugin/ResourcePoolEntry;
3 5 2 module Ljava/lang/String;
4 5 3 filename Ljava/lang/String;
MethodParameters:
Name Flags
entry
private java.nio.file.Path entryToImagePath(jdk.tools.jlink.plugin.ResourcePoolEntry);
descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/nio/file/Path;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: invokestatic jdk.tools.jlink.builder.DefaultImageBuilder.$SWITCH_TABLE$jdk$tools$jlink$plugin$ResourcePoolEntry$Type:()[I
aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.type:()Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
invokevirtual jdk.tools.jlink.plugin.ResourcePoolEntry$Type.ordinal:()I
iaload
tableswitch { // 2 - 8
2: 4
3: 5
4: 7
5: 6
6: 3
7: 1
8: 8
default: 9
}
1: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToFileName:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/lang/String;
astore 2
start local 2 2: aload 0
aload 2
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.nativeDir:(Ljava/lang/String;)Ljava/lang/String;
iconst_1
anewarray java.lang.String
dup
iconst_0
aload 2
aastore
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
areturn
end local 2 3: StackMap locals:
StackMap stack:
ldc "bin"
iconst_1
anewarray java.lang.String
dup
iconst_0
aload 0
aload 1
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToFileName:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/lang/String;
aastore
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
areturn
4: StackMap locals:
StackMap stack:
ldc "conf"
iconst_1
anewarray java.lang.String
dup
iconst_0
aload 0
aload 1
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToFileName:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/lang/String;
aastore
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
areturn
5: StackMap locals:
StackMap stack:
ldc "include"
iconst_1
anewarray java.lang.String
dup
iconst_0
aload 0
aload 1
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToFileName:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/lang/String;
aastore
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
areturn
6: StackMap locals:
StackMap stack:
ldc "man"
iconst_1
anewarray java.lang.String
dup
iconst_0
aload 0
aload 1
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToFileName:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/lang/String;
aastore
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
areturn
7: StackMap locals:
StackMap stack:
ldc "legal"
iconst_1
anewarray java.lang.String
dup
iconst_0
aload 0
aload 1
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToFileName:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/lang/String;
aastore
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
areturn
8: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToFileName:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)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;
areturn
9: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "invalid type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljdk/tools/jlink/builder/DefaultImageBuilder;
0 10 1 entry Ljdk/tools/jlink/plugin/ResourcePoolEntry;
2 3 2 filename Ljava/lang/String;
MethodParameters:
Name Flags
entry
private void accept(jdk.tools.jlink.plugin.ResourcePoolEntry);
descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=10, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.linkedTarget:()Ljdk/tools/jlink/plugin/ResourcePoolEntry;
ifnull 2
aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.type:()Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.LEGAL_NOTICE:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
if_acmpeq 2
1: new java.lang.UnsupportedOperationException
dup
new java.lang.StringBuilder
dup
ldc "symbolic link not implemented: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aconst_null
astore 2
aconst_null
astore 3
3: aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.content:()Ljava/io/InputStream;
astore 4
start local 4 4: invokestatic jdk.tools.jlink.builder.DefaultImageBuilder.$SWITCH_TABLE$jdk$tools$jlink$plugin$ResourcePoolEntry$Type:()[I
aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.type:()Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
invokevirtual jdk.tools.jlink.plugin.ResourcePoolEntry$Type.ordinal:()I
iaload
tableswitch { // 2 - 8
2: 12
3: 12
4: 14
5: 12
6: 8
7: 5
8: 22
default: 26
}
5: StackMap locals: java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack:
aload 0
getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
aload 0
aload 1
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToImagePath:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
astore 5
start local 5 6: aload 0
aload 4
aload 5
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.writeEntry:(Ljava/io/InputStream;Ljava/nio/file/Path;)V
7: goto 27
end local 5 8: StackMap locals:
StackMap stack:
aload 0
getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
aload 0
aload 1
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToImagePath:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
astore 6
start local 6 9: aload 0
aload 4
aload 6
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.writeEntry:(Ljava/io/InputStream;Ljava/nio/file/Path;)V
10: aload 6
invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
iconst_1
invokevirtual java.io.File.setExecutable:(Z)Z
pop
11: goto 27
end local 6 12: StackMap locals:
StackMap stack:
aload 0
aload 4
aload 0
getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
aload 0
aload 1
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToImagePath:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.writeEntry:(Ljava/io/InputStream;Ljava/nio/file/Path;)V
13: goto 27
14: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToImagePath:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/nio/file/Path;
astore 7
start local 7 15: aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.linkedTarget:()Ljdk/tools/jlink/plugin/ResourcePoolEntry;
ifnonnull 18
16: aload 0
aload 4
aload 0
getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
aload 7
invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.writeEntry:(Ljava/io/InputStream;Ljava/nio/file/Path;)V
17: goto 27
18: StackMap locals: jdk.tools.jlink.builder.DefaultImageBuilder jdk.tools.jlink.plugin.ResourcePoolEntry java.lang.Throwable java.lang.Throwable java.io.InputStream top top java.nio.file.Path
StackMap stack:
aload 0
aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.linkedTarget:()Ljdk/tools/jlink/plugin/ResourcePoolEntry;
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToImagePath:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/nio/file/Path;
astore 8
start local 8 19: aload 7
invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
aload 8
invokeinterface java.nio.file.Path.relativize:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
astore 9
start local 9 20: aload 0
aload 0
getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
aload 7
invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
aload 9
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.writeSymLinkEntry:(Ljava/nio/file/Path;Ljava/nio/file/Path;)V
end local 9 end local 8 21: goto 27
end local 7 22: StackMap locals: jdk.tools.jlink.builder.DefaultImageBuilder jdk.tools.jlink.plugin.ResourcePoolEntry java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack:
ldc "java.base"
aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.moduleName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 25
23: aload 0
aload 4
aload 0
getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
aload 0
aload 1
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.entryToImagePath:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.writeEntry:(Ljava/io/InputStream;Ljava/nio/file/Path;)V
24: goto 27
25: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "unexpected TOP entry: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "unexpected entry: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
27: StackMap locals:
StackMap stack:
aload 4
ifnull 33
aload 4
invokevirtual java.io.InputStream.close:()V
goto 33
StackMap locals:
StackMap stack: java.lang.Throwable
28: astore 2
aload 4
ifnull 29
aload 4
invokevirtual java.io.InputStream.close:()V
end local 4 StackMap locals:
StackMap stack:
29: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
30: astore 3
aload 2
ifnonnull 31
aload 3
astore 2
goto 32
StackMap locals:
StackMap stack:
31: aload 2
aload 3
if_acmpeq 32
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
32: aload 2
athrow
33: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Ljdk/tools/jlink/builder/DefaultImageBuilder;
0 34 1 file Ljdk/tools/jlink/plugin/ResourcePoolEntry;
4 29 4 in Ljava/io/InputStream;
6 8 5 dest Ljava/nio/file/Path;
9 12 6 p Ljava/nio/file/Path;
15 22 7 source Ljava/nio/file/Path;
19 21 8 target Ljava/nio/file/Path;
20 21 9 relPath Ljava/nio/file/Path;
Exception table:
from to target type
4 27 28 any
3 30 30 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
file
private void writeEntry(java.io.InputStream, java.nio.file.Path);
descriptor: (Ljava/io/InputStream;Ljava/nio/file/Path;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 2
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 2
invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.nio.file.Path
iconst_0
anewarray java.nio.file.attribute.FileAttribute
invokestatic java.nio.file.Files.createDirectories:(Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
pop
3: aload 1
aload 2
iconst_0
anewarray java.nio.file.CopyOption
invokestatic java.nio.file.Files.copy:(Ljava/io/InputStream;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)J
pop2
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/tools/jlink/builder/DefaultImageBuilder;
0 5 1 in Ljava/io/InputStream;
0 5 2 dstFile Ljava/nio/file/Path;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
in
dstFile
private void writeSymEntry(java.nio.file.Path, java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 2
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 1
invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.nio.file.Path
iconst_0
anewarray java.nio.file.attribute.FileAttribute
invokestatic java.nio.file.Files.createDirectories:(Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
pop
3: aload 1
aload 2
invokestatic java.nio.file.Files.createLink:(Ljava/nio/file/Path;Ljava/nio/file/Path;)Ljava/nio/file/Path;
pop
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/tools/jlink/builder/DefaultImageBuilder;
0 5 1 dstFile Ljava/nio/file/Path;
0 5 2 target Ljava/nio/file/Path;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dstFile
target
private void writeSymLinkEntry(java.nio.file.Path, java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 2
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 1
invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.nio.file.Path
iconst_0
anewarray java.nio.file.attribute.FileAttribute
invokestatic java.nio.file.Files.createDirectories:(Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
pop
3: aload 0
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.isWindows:()Z
ifne 8
aload 0
getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.getFileSystem:()Ljava/nio/file/FileSystem;
4: invokevirtual java.nio.file.FileSystem.supportedFileAttributeViews:()Ljava/util/Set;
5: ldc "posix"
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 8
6: aload 1
aload 2
iconst_0
anewarray java.nio.file.attribute.FileAttribute
invokestatic java.nio.file.Files.createSymbolicLink:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
pop
7: goto 17
8: StackMap locals:
StackMap stack:
aconst_null
astore 3
aconst_null
astore 4
9: aload 1
iconst_0
anewarray java.nio.file.OpenOption
invokestatic java.nio.file.Files.newBufferedWriter:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/BufferedWriter;
astore 5
start local 5 10: aload 5
ldc "Please see %s%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
11: aload 5
ifnull 17
aload 5
invokevirtual java.io.BufferedWriter.close:()V
goto 17
StackMap locals: jdk.tools.jlink.builder.DefaultImageBuilder java.nio.file.Path java.nio.file.Path java.lang.Throwable java.lang.Throwable java.io.BufferedWriter
StackMap stack: java.lang.Throwable
12: astore 3
aload 5
ifnull 13
aload 5
invokevirtual java.io.BufferedWriter.close:()V
end local 5 StackMap locals:
StackMap stack:
13: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
14: astore 4
aload 3
ifnonnull 15
aload 4
astore 3
goto 16
StackMap locals:
StackMap stack:
15: aload 3
aload 4
if_acmpeq 16
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
16: aload 3
athrow
17: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljdk/tools/jlink/builder/DefaultImageBuilder;
0 18 1 dstFile Ljava/nio/file/Path;
0 18 2 target Ljava/nio/file/Path;
10 13 5 writer Ljava/io/BufferedWriter;
Exception table:
from to target type
10 11 12 any
9 14 14 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dstFile
target
private java.lang.String nativeDir(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.isWindows:()Z
ifeq 5
1: aload 1
ldc ".dll"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifne 3
aload 1
ldc ".diz"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifne 3
2: aload 1
ldc ".pdb"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifne 3
aload 1
ldc ".map"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 4
3: StackMap locals:
StackMap stack:
ldc "bin"
areturn
4: StackMap locals:
StackMap stack:
ldc "lib"
areturn
5: StackMap locals:
StackMap stack:
ldc "lib"
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/tools/jlink/builder/DefaultImageBuilder;
0 6 1 filename Ljava/lang/String;
MethodParameters:
Name Flags
filename
private boolean isWindows();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.tools.jlink.builder.DefaultImageBuilder.targetPlatform:Ljdk/tools/jlink/internal/Platform;
getstatic jdk.tools.jlink.internal.Platform.WINDOWS:Ljdk/tools/jlink/internal/Platform;
if_acmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/tools/jlink/builder/DefaultImageBuilder;
private void setExecutable(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.getPosixFilePermissions:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Ljava/util/Set;
astore 2
start local 2 1: aload 2
getstatic java.nio.file.attribute.PosixFilePermission.OWNER_EXECUTE:Ljava/nio/file/attribute/PosixFilePermission;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
2: aload 2
getstatic java.nio.file.attribute.PosixFilePermission.GROUP_EXECUTE:Ljava/nio/file/attribute/PosixFilePermission;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
3: aload 2
getstatic java.nio.file.attribute.PosixFilePermission.OTHERS_EXECUTE:Ljava/nio/file/attribute/PosixFilePermission;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
4: aload 1
aload 2
invokestatic java.nio.file.Files.setPosixFilePermissions:(Ljava/nio/file/Path;Ljava/util/Set;)Ljava/nio/file/Path;
pop
end local 2 5: goto 8
StackMap locals:
StackMap stack: java.io.IOException
6: astore 2
start local 2 7: new java.io.UncheckedIOException
dup
aload 2
invokespecial java.io.UncheckedIOException.<init>:(Ljava/io/IOException;)V
athrow
end local 2 8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/tools/jlink/builder/DefaultImageBuilder;
0 9 1 file Ljava/nio/file/Path;
1 5 2 perms Ljava/util/Set<Ljava/nio/file/attribute/PosixFilePermission;>;
7 8 2 ioe Ljava/io/IOException;
Exception table:
from to target type
0 5 6 Class java.io.IOException
MethodParameters:
Name Flags
file
private void setReadOnly(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.getPosixFilePermissions:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Ljava/util/Set;
astore 2
start local 2 1: aload 2
getstatic java.nio.file.attribute.PosixFilePermission.OWNER_WRITE:Ljava/nio/file/attribute/PosixFilePermission;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
2: aload 2
getstatic java.nio.file.attribute.PosixFilePermission.GROUP_WRITE:Ljava/nio/file/attribute/PosixFilePermission;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
3: aload 2
getstatic java.nio.file.attribute.PosixFilePermission.OTHERS_WRITE:Ljava/nio/file/attribute/PosixFilePermission;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
4: aload 1
aload 2
invokestatic java.nio.file.Files.setPosixFilePermissions:(Ljava/nio/file/Path;Ljava/util/Set;)Ljava/nio/file/Path;
pop
end local 2 5: goto 8
StackMap locals:
StackMap stack: java.io.IOException
6: astore 2
start local 2 7: new java.io.UncheckedIOException
dup
aload 2
invokespecial java.io.UncheckedIOException.<init>:(Ljava/io/IOException;)V
athrow
end local 2 8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/tools/jlink/builder/DefaultImageBuilder;
0 9 1 file Ljava/nio/file/Path;
1 5 2 perms Ljava/util/Set<Ljava/nio/file/attribute/PosixFilePermission;>;
7 8 2 ioe Ljava/io/IOException;
Exception table:
from to target type
0 5 6 Class java.io.IOException
MethodParameters:
Name Flags
file
private static void createUtf8File(java.io.File, java.lang.String);
descriptor: (Ljava/io/File;Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
aconst_null
astore 3
1: new java.io.FileOutputStream
dup
aload 0
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
astore 4
start local 4 2: new java.io.OutputStreamWriter
dup
aload 4
ldc "UTF-8"
invokespecial java.io.OutputStreamWriter.<init>:(Ljava/io/OutputStream;Ljava/lang/String;)V
astore 5
start local 5 3: aload 5
aload 1
invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
4: aload 5
ifnull 7
aload 5
invokevirtual java.io.Writer.close:()V
goto 7
StackMap locals: java.io.File java.lang.String java.lang.Throwable java.lang.Throwable java.io.OutputStream java.io.Writer
StackMap stack: java.lang.Throwable
5: astore 2
aload 5
ifnull 6
aload 5
invokevirtual java.io.Writer.close:()V
end local 5 StackMap locals:
StackMap stack:
6: aload 2
athrow
StackMap locals:
StackMap stack:
7: aload 4
ifnull 15
aload 4
invokevirtual java.io.OutputStream.close:()V
goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
8: astore 3
aload 2
ifnonnull 9
aload 3
astore 2
goto 10
StackMap locals:
StackMap stack:
9: aload 2
aload 3
if_acmpeq 10
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
10: aload 4
ifnull 11
aload 4
invokevirtual java.io.OutputStream.close:()V
end local 4 StackMap locals:
StackMap stack:
11: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 3
aload 2
ifnonnull 13
aload 3
astore 2
goto 14
StackMap locals:
StackMap stack:
13: aload 2
aload 3
if_acmpeq 14
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
14: aload 2
athrow
15: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 file Ljava/io/File;
0 16 1 content Ljava/lang/String;
2 11 4 fout Ljava/io/OutputStream;
3 6 5 output Ljava/io/Writer;
Exception table:
from to target type
3 4 5 any
2 7 8 any
1 12 12 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
file
content
public jdk.tools.jlink.internal.ExecutableImage getExecutableImage();
descriptor: ()Ljdk/tools/jlink/internal/ExecutableImage;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: new jdk.tools.jlink.builder.DefaultImageBuilder$DefaultExecutableImage
dup
aload 0
getfield jdk.tools.jlink.builder.DefaultImageBuilder.root:Ljava/nio/file/Path;
aload 0
getfield jdk.tools.jlink.builder.DefaultImageBuilder.modules:Ljava/util/Set;
invokespecial jdk.tools.jlink.builder.DefaultImageBuilder$DefaultExecutableImage.<init>:(Ljava/nio/file/Path;Ljava/util/Set;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/tools/jlink/builder/DefaultImageBuilder;
private static void patchScripts(jdk.tools.jlink.internal.ExecutableImage, java.util.List<java.lang.String>);
descriptor: (Ljdk/tools/jlink/internal/ExecutableImage;Ljava/util/List;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 1
invokeinterface java.util.List.isEmpty:()Z
ifne 4
2: aload 0
invokeinterface jdk.tools.jlink.internal.ExecutableImage.getHome:()Ljava/nio/file/Path;
ldc "bin"
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
iconst_2
aload 0
invokedynamic test(Ljdk/tools/jlink/internal/ExecutableImage;)Ljava/util/function/BiPredicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)Z
jdk/tools/jlink/builder/DefaultImageBuilder.lambda$15(Ljdk/tools/jlink/internal/ExecutableImage;Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z (6)
(Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z
iconst_0
anewarray java.nio.file.FileVisitOption
invokestatic java.nio.file.Files.find:(Ljava/nio/file/Path;ILjava/util/function/BiPredicate;[Ljava/nio/file/FileVisitOption;)Ljava/util/stream/Stream;
3: aload 1
invokedynamic accept(Ljava/util/List;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
jdk/tools/jlink/builder/DefaultImageBuilder.lambda$16(Ljava/util/List;Ljava/nio/file/Path;)V (6)
(Ljava/nio/file/Path;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 img Ljdk/tools/jlink/internal/ExecutableImage;
0 5 1 args Ljava/util/List<Ljava/lang/String;>;
Exceptions:
throws java.io.IOException
Signature: (Ljdk/tools/jlink/internal/ExecutableImage;Ljava/util/List<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
img
args
public static jdk.tools.jlink.internal.ExecutableImage getExecutableImage(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Ljdk/tools/jlink/internal/ExecutableImage;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
ldc "bin"
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
astore 1
start local 1 1: aload 1
ldc "java"
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
ifne 3
2: aload 1
ldc "java.exe"
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
ifeq 4
3: StackMap locals: java.nio.file.Path
StackMap stack:
new jdk.tools.jlink.builder.DefaultImageBuilder$DefaultExecutableImage
dup
aload 0
aload 0
invokestatic jdk.tools.jlink.builder.DefaultImageBuilder.retrieveModules:(Ljava/nio/file/Path;)Ljava/util/Set;
invokespecial jdk.tools.jlink.builder.DefaultImageBuilder$DefaultExecutableImage.<init>:(Ljava/nio/file/Path;Ljava/util/Set;)V
areturn
4: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 root Ljava/nio/file/Path;
1 5 1 binDir Ljava/nio/file/Path;
MethodParameters:
Name Flags
root
private static java.util.Set<java.lang.String> retrieveModules(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Ljava/util/Set;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=10, args_size=1
start local 0 0: aload 0
ldc "release"
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
astore 1
start local 1 1: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 2
start local 2 2: aload 1
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
ifeq 23
3: new java.util.Properties
dup
invokespecial java.util.Properties.<init>:()V
astore 3
start local 3 4: aconst_null
astore 4
aconst_null
astore 5
5: new java.io.FileInputStream
dup
aload 1
invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
astore 6
start local 6 6: aload 3
aload 6
invokevirtual java.util.Properties.load:(Ljava/io/InputStream;)V
7: aload 6
ifnull 15
aload 6
invokevirtual java.io.FileInputStream.close:()V
goto 15
StackMap locals: java.nio.file.Path java.nio.file.Path java.util.Set java.util.Properties java.lang.Throwable java.lang.Throwable java.io.FileInputStream
StackMap stack: java.lang.Throwable
8: astore 4
aload 6
ifnull 9
aload 6
invokevirtual java.io.FileInputStream.close:()V
end local 6 StackMap locals:
StackMap stack:
9: aload 4
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
10: astore 5
aload 4
ifnonnull 11
aload 5
astore 4
goto 12
StackMap locals:
StackMap stack:
11: aload 4
aload 5
if_acmpeq 12
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
12: aload 4
athrow
StackMap locals: java.nio.file.Path java.nio.file.Path java.util.Set java.util.Properties
StackMap stack: java.io.IOException
13: astore 4
start local 4 14: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Can't read release file "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 4 15: StackMap locals:
StackMap stack:
aload 3
ldc "MODULES"
invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 16: aload 4
ifnull 23
17: aload 4
iconst_1
aload 4
invokevirtual java.lang.String.length:()I
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
ldc " "
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 5
start local 5 18: aload 5
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 22
StackMap locals: java.nio.file.Path java.nio.file.Path java.util.Set java.util.Properties java.lang.String java.lang.String[] top int int java.lang.String[]
StackMap stack:
19: aload 9
iload 7
aaload
astore 6
start local 6 20: aload 2
aload 6
invokevirtual java.lang.String.trim:()Ljava/lang/String;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 6 21: iinc 7 1
StackMap locals:
StackMap stack:
22: iload 7
iload 8
if_icmplt 19
end local 5 end local 4 end local 3 23: StackMap locals: java.nio.file.Path java.nio.file.Path java.util.Set
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 root Ljava/nio/file/Path;
1 24 1 releaseFile Ljava/nio/file/Path;
2 24 2 modules Ljava/util/Set<Ljava/lang/String;>;
4 23 3 release Ljava/util/Properties;
6 9 6 fi Ljava/io/FileInputStream;
14 15 4 ex Ljava/io/IOException;
16 23 4 mods Ljava/lang/String;
18 23 5 arr [Ljava/lang/String;
20 21 6 m Ljava/lang/String;
Exception table:
from to target type
6 7 8 any
5 10 10 any
4 13 13 Class java.io.IOException
Signature: (Ljava/nio/file/Path;)Ljava/util/Set<Ljava/lang/String;>;
MethodParameters:
Name Flags
root
static int[] $SWITCH_TABLE$jdk$tools$jlink$plugin$ResourcePoolEntry$Type();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic jdk.tools.jlink.builder.DefaultImageBuilder.$SWITCH_TABLE$jdk$tools$jlink$plugin$ResourcePoolEntry$Type:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.values:()[Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
arraylength
newarray 10
astore 0
2: aload 0
getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.CLASS_OR_RESOURCE:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
invokevirtual jdk.tools.jlink.plugin.ResourcePoolEntry$Type.ordinal:()I
iconst_1
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.CONFIG:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
invokevirtual jdk.tools.jlink.plugin.ResourcePoolEntry$Type.ordinal:()I
iconst_2
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.HEADER_FILE:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
invokevirtual jdk.tools.jlink.plugin.ResourcePoolEntry$Type.ordinal:()I
iconst_3
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.LEGAL_NOTICE:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
invokevirtual jdk.tools.jlink.plugin.ResourcePoolEntry$Type.ordinal:()I
iconst_4
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.MAN_PAGE:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
invokevirtual jdk.tools.jlink.plugin.ResourcePoolEntry$Type.ordinal:()I
iconst_5
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.NATIVE_CMD:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
invokevirtual jdk.tools.jlink.plugin.ResourcePoolEntry$Type.ordinal:()I
bipush 6
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.NATIVE_LIB:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
invokevirtual jdk.tools.jlink.plugin.ResourcePoolEntry$Type.ordinal:()I
bipush 7
iastore
21: goto 23
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
22: pop
StackMap locals:
StackMap stack:
23: aload 0
getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.TOP:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
invokevirtual jdk.tools.jlink.plugin.ResourcePoolEntry$Type.ordinal:()I
bipush 8
iastore
24: goto 26
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
25: pop
StackMap locals:
StackMap stack:
26: aload 0
dup
putstatic jdk.tools.jlink.builder.DefaultImageBuilder.$SWITCH_TABLE$jdk$tools$jlink$plugin$ResourcePoolEntry$Type:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
20 21 22 Class java.lang.NoSuchFieldError
23 24 25 Class java.lang.NoSuchFieldError
private static boolean lambda$1(jdk.tools.jlink.plugin.ResourcePoolEntry);
descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.type:()Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.CLASS_OR_RESOURCE:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
if_acmpeq 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 f Ljdk/tools/jlink/plugin/ResourcePoolEntry;
private void lambda$2(jdk.tools.jlink.plugin.ResourcePoolEntry);
descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual jdk.tools.jlink.builder.DefaultImageBuilder.accept:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
1: goto 6
StackMap locals:
StackMap stack: java.nio.file.FileAlreadyExistsException
2: astore 2
start local 2 3: new java.lang.AssertionError
dup
ldc "Duplicate entry!"
aload 2
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 4: StackMap locals:
StackMap stack: java.io.IOException
astore 2
start local 2 5: new java.io.UncheckedIOException
dup
aload 2
invokespecial java.io.UncheckedIOException.<init>:(Ljava/io/IOException;)V
athrow
end local 2 6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/tools/jlink/builder/DefaultImageBuilder;
0 7 1 f Ljdk/tools/jlink/plugin/ResourcePoolEntry;
3 4 2 e Ljava/nio/file/FileAlreadyExistsException;
5 6 2 ioExp Ljava/io/IOException;
Exception table:
from to target type
0 1 2 Class java.nio.file.FileAlreadyExistsException
0 1 4 Class java.io.IOException
private void lambda$3(jdk.tools.jlink.plugin.ResourcePoolModule);
descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolModule;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePoolModule.packages:()Ljava/util/Set;
invokeinterface java.util.Set.isEmpty:()Z
ifne 2
1: aload 0
getfield jdk.tools.jlink.builder.DefaultImageBuilder.modules:Ljava/util/Set;
aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePoolModule.name:()Ljava/lang/String;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/tools/jlink/builder/DefaultImageBuilder;
0 3 1 m Ljdk/tools/jlink/plugin/ResourcePoolModule;
private static boolean lambda$4(java.nio.file.Path, java.nio.file.attribute.BasicFileAttributes);
descriptor: (Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.nio.file.attribute.BasicFileAttributes.isRegularFile:()Z
ifeq 1
aload 0
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
ldc ".diz"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 path Ljava/nio/file/Path;
0 2 1 attrs Ljava/nio/file/attribute/BasicFileAttributes;
private static boolean lambda$6(java.nio.file.Path, java.nio.file.attribute.BasicFileAttributes);
descriptor: (Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
ldc "jspawnhelper"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 3
1: aload 0
invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
ldc "jexec"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 3
2: iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 path Ljava/nio/file/Path;
0 4 1 attrs Ljava/nio/file/attribute/BasicFileAttributes;
private static boolean lambda$8(java.nio.file.Path, java.nio.file.attribute.BasicFileAttributes);
descriptor: (Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.nio.file.attribute.BasicFileAttributes.isRegularFile:()Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 path Ljava/nio/file/Path;
0 1 1 attrs Ljava/nio/file/attribute/BasicFileAttributes;
private static boolean lambda$10(jdk.tools.jlink.plugin.ResourcePoolEntry);
descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.type:()Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
getstatic jdk.tools.jlink.plugin.ResourcePoolEntry$Type.CLASS_OR_RESOURCE:Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
if_acmpeq 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 f Ljdk/tools/jlink/plugin/ResourcePoolEntry;
private static boolean lambda$13(java.util.Map$Entry);
descriptor: (Ljava/util/Map$Entry;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.Set
invokeinterface java.util.Set.size:()I
iconst_1
if_icmple 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 e Ljava/util/Map$Entry<Ljava/nio/file/Path;Ljava/util/Set<Ljava/lang/String;>;>;
private static void lambda$14(java.util.Map, java.util.Map$Entry);
descriptor: (Ljava/util/Map;Ljava/util/Map$Entry;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=2, args_size=2
start local 1 0: aload 0
aload 1
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.nio.file.Path
aload 1
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.Set
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 e Ljava/util/Map$Entry<Ljava/nio/file/Path;Ljava/util/Set<Ljava/lang/String;>;>;
private static boolean lambda$15(jdk.tools.jlink.internal.ExecutableImage, java.nio.file.Path, java.nio.file.attribute.BasicFileAttributes);
descriptor: (Ljdk/tools/jlink/internal/ExecutableImage;Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=3, args_size=3
start local 1 start local 2 0: aload 0
invokeinterface jdk.tools.jlink.internal.ExecutableImage.getModules:()Ljava/util/Set;
aload 1
invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ireturn
end local 2 end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 path Ljava/nio/file/Path;
0 1 2 attrs Ljava/nio/file/attribute/BasicFileAttributes;
private static void lambda$16(java.util.List, java.nio.file.Path);
descriptor: (Ljava/util/List;Ljava/nio/file/Path;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=6, locals=11, args_size=2
start local 1 0: ldc "JLINK_VM_OPTIONS="
astore 2
start local 2 1: aload 1
invokestatic java.nio.file.Files.readAllBytes:(Ljava/nio/file/Path;)[B
astore 3
start local 3 2: new java.lang.String
dup
aload 3
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
astore 4
start local 4 3: aload 4
aload 2
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 5
start local 5 4: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 6
start local 6 5: iload 5
iconst_m1
if_icmpeq 29
6: aload 6
aload 4
iconst_0
iload 5
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: aload 0
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 8
goto 11
StackMap locals: java.util.List java.nio.file.Path java.lang.String byte[] java.lang.String int java.lang.StringBuilder top java.util.Iterator
StackMap stack:
9: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 7
start local 7 10: aload 6
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 7 11: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
12: aload 4
iload 5
aload 2
invokevirtual java.lang.String.length:()I
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 7
start local 7 13: aload 6
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
14: aload 6
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
15: aconst_null
astore 8
aconst_null
astore 9
16: aload 1
17: getstatic java.nio.charset.StandardCharsets.ISO_8859_1:Ljava/nio/charset/Charset;
iconst_1
anewarray java.nio.file.OpenOption
dup
iconst_0
18: getstatic java.nio.file.StandardOpenOption.WRITE:Ljava/nio/file/StandardOpenOption;
aastore
19: invokestatic java.nio.file.Files.newBufferedWriter:(Ljava/nio/file/Path;Ljava/nio/charset/Charset;[Ljava/nio/file/OpenOption;)Ljava/io/BufferedWriter;
astore 10
start local 10 20: aload 10
aload 4
invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
21: aload 10
ifnull 29
aload 10
invokevirtual java.io.BufferedWriter.close:()V
goto 29
StackMap locals: java.util.List java.nio.file.Path java.lang.String byte[] java.lang.String int java.lang.StringBuilder java.lang.String java.lang.Throwable java.lang.Throwable java.io.BufferedWriter
StackMap stack: java.lang.Throwable
22: astore 8
aload 10
ifnull 23
aload 10
invokevirtual java.io.BufferedWriter.close:()V
end local 10 StackMap locals:
StackMap stack:
23: aload 8
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
24: astore 9
aload 8
ifnonnull 25
aload 9
astore 8
goto 26
StackMap locals:
StackMap stack:
25: aload 8
aload 9
if_acmpeq 26
aload 8
aload 9
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
26: aload 8
athrow
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 27: StackMap locals: java.util.List java.nio.file.Path
StackMap stack: java.io.IOException
astore 2
start local 2 28: new java.lang.RuntimeException
dup
aload 2
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 29: StackMap locals:
StackMap stack:
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 30 1 p Ljava/nio/file/Path;
1 27 2 pattern Ljava/lang/String;
2 27 3 content [B
3 27 4 str Ljava/lang/String;
4 27 5 index I
5 27 6 builder Ljava/lang/StringBuilder;
10 11 7 s Ljava/lang/String;
13 27 7 remain Ljava/lang/String;
20 23 10 writer Ljava/io/BufferedWriter;
28 29 2 ex Ljava/io/IOException;
Exception table:
from to target type
20 21 22 any
16 24 24 any
0 27 27 Class java.io.IOException
}
SourceFile: "DefaultImageBuilder.java"
NestMembers:
jdk.tools.jlink.builder.DefaultImageBuilder$DefaultExecutableImage
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Entry = java.util.Map$Entry of java.util.Map
final DefaultExecutableImage = jdk.tools.jlink.builder.DefaultImageBuilder$DefaultExecutableImage of jdk.tools.jlink.builder.DefaultImageBuilder
public final Type = jdk.tools.jlink.plugin.ResourcePoolEntry$Type of jdk.tools.jlink.plugin.ResourcePoolEntry