< prev index next >

src/jdk.incubator.jpackage/share/classes/jdk/incubator/jpackage/internal/CfgFile.java

Print this page

        

*** 23,42 **** --- 23,44 ---- * questions. */ package jdk.incubator.jpackage.internal; import java.io.IOException; + import java.io.File; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Stream; import static jdk.incubator.jpackage.internal.StandardBundlerParam.LAUNCHER_DATA; import static jdk.incubator.jpackage.internal.StandardBundlerParam.APP_NAME; import static jdk.incubator.jpackage.internal.StandardBundlerParam.JAVA_OPTIONS; import static jdk.incubator.jpackage.internal.StandardBundlerParam.ARGUMENTS; + import static jdk.incubator.jpackage.internal.StandardBundlerParam.VERSION; /** * App launcher's config file. */ final class CfgFile {
*** 47,56 **** --- 49,59 ---- CfgFile initFromParams(Map<String, ? super Object> params) { launcherData = LAUNCHER_DATA.fetchFrom(params); launcherName = APP_NAME.fetchFrom(params); javaOptions = JAVA_OPTIONS.fetchFrom(params); arguments = ARGUMENTS.fetchFrom(params); + version = VERSION.fetchFrom(params); return this; } void create(Path appImage) throws IOException { List<Map.Entry<String, Object>> content = new ArrayList<>();
*** 80,94 **** appCfgLayout.appDirectory().resolve(value).toString())); } ApplicationLayout appImagelayout = appLayout.resolveAt(appImage); Path modsDir = appImagelayout.appModsDirectory(); ! if (!javaOptions.isEmpty() || Files.isDirectory(modsDir)) { content.add(Map.entry("[JavaOptions]", SECTION_TAG)); for (var value : javaOptions) { content.add(Map.entry("java-options", value)); } content.add(Map.entry("java-options", "--module-path")); content.add(Map.entry("java-options", appCfgLayout.appModsDirectory())); } --- 83,111 ---- appCfgLayout.appDirectory().resolve(value).toString())); } ApplicationLayout appImagelayout = appLayout.resolveAt(appImage); Path modsDir = appImagelayout.appModsDirectory(); ! content.add(Map.entry("[JavaOptions]", SECTION_TAG)); + + // always let app know it's name and version + content.add(Map.entry( + "java-options", "-Djpackage.app-name=" + launcherName)); + content.add(Map.entry( + "java-options", "-Djpackage.app-version=" + version)); + content.add(Map.entry( + "java-options", "-Djpackage.app-path=" + "$BINDIR" + + File.separator + launcherName)); + + // add user supplied java options if there are any for (var value : javaOptions) { content.add(Map.entry("java-options", value)); } + + // add module path if there is one + if (Files.isDirectory(modsDir)) { content.add(Map.entry("java-options", "--module-path")); content.add(Map.entry("java-options", appCfgLayout.appModsDirectory())); }
*** 124,133 **** --- 141,151 ---- appCfgLayout.appDirectory().resolve(appCfgLayout.appModsDirectory().getFileName())); return appCfgLayout; } private String launcherName; + private String version; private LauncherData launcherData; List<String> arguments; List<String> javaOptions; private final ApplicationLayout appLayout;
< prev index next >