< prev index next >
src/jdk.incubator.jpackage/share/classes/jdk/incubator/jpackage/internal/CfgFile.java
Print this page
@@ -23,20 +23,22 @@
* 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,10 +49,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 +83,24 @@
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 version
+ 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 +136,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 >