Java Web Start-несколько ярлыков


У меня возникли проблемы с созданием ярлыков в версиях WindowsXP, которые не на английском языке.

Я хочу добавить ярлык в меню "Startup", таким образом, приложение будет запускаться каждый раз, когда пользователь входит в систему.

Так я и сделал:

<shortcut online="true">
    <desktop/>
    <menu submenu="Startup"/>
</shortcut>

Но, например, в WindowsXP на португальском языке правильное подменю должно быть "Inicializar" вместо "Startup".

Итак, учитывая, что пользователи приложения могут иметь английскую или португальскую версии Windows, мне нужно что-то вот так:

<shortcut online="true">
    <desktop/>
    <menu submenu="Startup"/>
</shortcut>
<shortcut online="true">
        <desktop/>
        <menu submenu="Inicializar"/>
</shortcut>

Но это не работает.

Может ли кто-нибудь помочь?

Спасибо.

2 2

2 ответа:

Формат JNLP поддерживает секционирование загрузок по локалям в элементах resources, но не в элементе shortcuts (из памяти - используйте JaNeLA, чтобы проверить наверняка).

Вместо этого вам, вероятно, нужно будет посмотреть на IntegrationService введено в 6.0.18. В частности,requestShortcut(desktop,menu,submenu)1 метод. Метод возвращает a boolean для обозначения успеха / неудачи.

  1. строка для submenu может быть выведена из:
    • user.language
    • Locale.getDefault()
    • простые решения-спросите пользователя:
      1. редактируемый комбинированный список известных вариантов в области опций.
      2. средство выбора файлов, указывающее на место, где должно быть меню Пуск.

Я сделал это в своем приложении:

 public static void main(String[] args) {
        IntegrationService is = null;
        String osName = System.getProperty("os.name");

        try {
            is = (IntegrationService) ServiceManager.lookup("javax.jnlp.IntegrationService");
        } catch (UnavailableServiceException use) {
            use.printStackTrace();
        }
        if (!is.hasMenuShortcut()) {
            if (osName.equals("Windows 7")) {
                is.requestShortcut(false, true, "Startup");
            } else {
                is.requestShortcut(false, true, "Inicializar");
            }
        }
        SystemTrayTest main = new SystemTrayTest();
    }

Так в Windows XP ярлык создается в " Inicializar "и Windows 7 в"Startup".