diff --git a/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WixAppImageFragmentBuilder.java b/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WixAppImageFragmentBuilder.java index 824636f2516e4..7578712ab4d5b 100644 --- a/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WixAppImageFragmentBuilder.java +++ b/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WixAppImageFragmentBuilder.java @@ -528,7 +528,7 @@ private List addFaComponents(XMLStreamWriter xml, xml.writeStartElement("Verb"); xml.writeAttribute("Id", "open"); - xml.writeAttribute("Command", "Open"); + xml.writeAttribute("Command", "!(loc.ContextMenuCommandLabel)"); xml.writeAttribute("Argument", "\"%1\" %*"); xml.writeAttribute("TargetFile", Id.File.of(fa.launcherPath)); xml.writeEndElement(); // diff --git a/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/MsiInstallerStrings_de.wxl b/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/MsiInstallerStrings_de.wxl index cfc8615283430..44ab87bdde180 100644 --- a/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/MsiInstallerStrings_de.wxl +++ b/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/MsiInstallerStrings_de.wxl @@ -12,4 +12,5 @@ Desktopverknüpfung(en) erstellen Startmenüverknüpfung(en) erstellen [ProductName]-Setup + Open with [ProductName] diff --git a/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/MsiInstallerStrings_en.wxl b/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/MsiInstallerStrings_en.wxl index 4622cca5d5420..bc081fefe5b37 100644 --- a/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/MsiInstallerStrings_en.wxl +++ b/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/MsiInstallerStrings_en.wxl @@ -12,4 +12,5 @@ Create desktop shortcut(s) Create start menu shortcut(s) [ProductName] Setup + Open with [ProductName] diff --git a/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/MsiInstallerStrings_ja.wxl b/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/MsiInstallerStrings_ja.wxl index 9e7e5cfd03e66..84617086cff39 100644 --- a/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/MsiInstallerStrings_ja.wxl +++ b/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/MsiInstallerStrings_ja.wxl @@ -12,4 +12,5 @@ デスクトップ・ショートカットの作成 スタート・メニューのショートカットの作成 [ProductName]セットアップ + Open with [ProductName] diff --git a/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/MsiInstallerStrings_zh_CN.wxl b/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/MsiInstallerStrings_zh_CN.wxl index 8b9910e0cf148..79e31c8d05fc3 100644 --- a/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/MsiInstallerStrings_zh_CN.wxl +++ b/src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/MsiInstallerStrings_zh_CN.wxl @@ -12,4 +12,5 @@ 创建桌面快捷方式 创建开始菜单快捷方式 [ProductName] 安装程序 + Open with [ProductName] diff --git a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/PackageTest.java b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/PackageTest.java index 8e08d48cc71a8..834948b830ae8 100644 --- a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/PackageTest.java +++ b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/PackageTest.java @@ -283,6 +283,18 @@ PackageTest addHelloAppFileAssociationsVerifier(FileAssociations fa) { HelloApp.verifyOutputFile(appOutput, expectedArgs, Collections.emptyMap()); }); + + if (TKit.isWindows()) { + // Verify context menu label in registry. + String progId = WindowsHelper.queryRegistryValue( + String.format("HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\%s", fa.getSuffix()), ""); + TKit.assertNotNull(progId, "context menu progId found"); + String contextMenuLabel = WindowsHelper.queryRegistryValue( + String.format("HKEY_CLASSES_ROOT\\%s\\shell\\open", progId), ""); + TKit.assertNotNull(contextMenuLabel, "context menu label found"); + String appName = cmd.getArgumentValue("--name"); + TKit.assertTrue(String.format("Open with %s", appName).equals(contextMenuLabel), "context menu label text"); + } }); return this; diff --git a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WindowsHelper.java b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WindowsHelper.java index 18f483bb53002..644c006ba0723 100644 --- a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WindowsHelper.java +++ b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WindowsHelper.java @@ -356,7 +356,7 @@ private void verifyFileAssociations(boolean exists, String suffix, private final String name; } - private static String queryRegistryValue(String keyPath, String valueName) { + static String queryRegistryValue(String keyPath, String valueName) { var status = Executor.of("reg", "query", keyPath, "/v", valueName) .saveOutput() .executeWithoutExitCodeCheck();