< prev index next >

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

Print this page

        

@@ -33,10 +33,11 @@
 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,10 +48,11 @@
     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,15 +82,26 @@
                     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));
+
+        // 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));
+
+        // 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,10 +137,11 @@
                 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 >