--- old/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WindowsBundlerParam.java 2019-03-20 16:50:04.267896000 -0700 +++ new/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WindowsBundlerParam.java 2019-03-20 16:50:02.974766700 -0700 @@ -25,6 +25,7 @@ package jdk.jpackage.internal; +import java.text.MessageFormat; import java.util.Map; import java.util.ResourceBundle; import java.util.function.BiFunction; @@ -86,4 +87,30 @@ params -> Boolean.FALSE, (s, p) -> Boolean.valueOf(s) ); + + static final BundlerParamInfo WINDOWS_INSTALL_DIR = + new StandardBundlerParam<>( + "windows-install-dir", + String.class, + params -> { + String dir = INSTALL_DIR.fetchFrom(params); + if (dir != null) { + if (dir.contains(":") || dir.contains("..")) { + Log.error(MessageFormat.format(I18N.getString( + "message.invalid.install.dir"), dir, + APP_NAME.fetchFrom(params))); + } else { + if (dir.startsWith("\\")) { + dir = dir.substring(1); + } + if (dir.endsWith("\\")) { + dir = dir.substring(0, dir.length() - 1); + } + return dir; + } + } + return APP_NAME.fetchFrom(params); // Default to app name + }, + (s, p) -> s + ); }