< prev index next >

src/jdk.jlink/share/classes/jdk/tools/jlink/builder/DefaultImageBuilder.java

Print this page

        

*** 88,102 **** this.args = createArgs(home); } private static List<String> createArgs(Path home) { Objects.requireNonNull(home); - List<String> javaArgs = new ArrayList<>(); Path binDir = home.resolve("bin"); String java = Files.exists(binDir.resolve("java"))? "java" : "java.exe"; ! javaArgs.add(binDir.resolve(java).toString()); ! return Collections.unmodifiableList(javaArgs); } @Override public Path getHome() { return home; --- 88,100 ---- this.args = createArgs(home); } private static List<String> createArgs(Path home) { Objects.requireNonNull(home); Path binDir = home.resolve("bin"); String java = Files.exists(binDir.resolve("java"))? "java" : "java.exe"; ! return List.of(binDir.resolve(java).toString()); } @Override public Path getHome() { return home;
*** 168,177 **** --- 166,176 ---- public void storeFiles(ResourcePool files) { try { // populate release properties up-front. targetOsName // field is assigned from there and used elsewhere. Properties release = releaseProperties(files); + Path bin = root.resolve("bin"); files.entries().forEach(f -> { if (!f.type().equals(ResourcePoolEntry.Type.CLASS_OR_RESOURCE)) { try { accept(f);
*** 189,199 **** storeFiles(modules, release); if (Files.getFileStore(root).supportsFileAttributeView(PosixFileAttributeView.class)) { // launchers in the bin directory need execute permission - Path bin = root.resolve("bin"); if (Files.isDirectory(bin)) { Files.list(bin) .filter(f -> !f.toString().endsWith(".diz")) .filter(f -> Files.isRegularFile(f)) .forEach(this::setExecutable); --- 188,197 ----
*** 207,217 **** --- 205,219 ---- || path.getFileName().toString().equals("jexec"); }).forEach(this::setExecutable); } } + // If native files are stripped completely, <root>/bin dir won't exist! + // So, don't bother generating launcher scripts. + if (Files.isDirectory(bin)) { prepareApplicationFiles(files, modules); + } } catch (IOException ex) { throw new PluginException(ex); } }
*** 227,237 **** props.setProperty("JAVA_VERSION", System.getProperty("java.version")); }); this.targetOsName = props.getProperty("OS_NAME"); if (this.targetOsName == null) { ! throw new RuntimeException("can't determine target OS from java.base descriptor"); } Optional<ResourcePoolEntry> release = pool.findEntry("/java.base/release"); if (release.isPresent()) { try (InputStream is = release.get().content()) { --- 229,239 ---- props.setProperty("JAVA_VERSION", System.getProperty("java.version")); }); this.targetOsName = props.getProperty("OS_NAME"); if (this.targetOsName == null) { ! throw new PluginException("TargetPlatform attribute is missing for java.base module"); } Optional<ResourcePoolEntry> release = pool.findEntry("/java.base/release"); if (release.isPresent()) { try (InputStream is = release.get().content()) {
< prev index next >