Как воссоздать ярлык для веб-запуска приложения? - PullRequest
10 голосов
/ 26 августа 2009

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

Если эти ярлыки удаляются на клиенте - как их можно переустановить автоматически без действий пользователя? Есть ли опция конфигурации для файла jnlp?

(кстати, я использую java6)

Ответы [ 4 ]

5 голосов
/ 05 марта 2013

Вот скелет автоматического пути ( вам нужно javaws.jar в вашем классе, чтобы это работало ):

IntegrationService is = null;
try
{
    is = (IntegrationService) ServiceManager.lookup("javax.jnlp.IntegrationService");
}
catch (UnavailableServiceException use)
{
    // integration service unavailable
}

if (!is.hasDesktopShortcut())
{
    if (!is.requestShortcut(true, true, "Companyapp"))
    {
        // failed to install shortcuts
    }
}
else
{
    // shortcuts already exist
}
3 голосов
/ 10 мая 2012

Документы для Java6 на javaws показывают, что вы можете использовать исполняемый файл для запуска приложения или для выполнения операций обслуживания, они вызывают параметры управления.

Два из этих вариантов:

javaws -uninstall <jnlp>
javaws -import [import-options] <jnlp>

одна из вещей, которые вы можете сделать, это

javaws -import -silent -shortcut <jnlp>

Так что, если вы можете запустить скрипт, который сначала удаляет ваше конкретное приложение jnlp, а затем автоматически импортирует его и его ярлыки, то это решит вашу проблему. Я не думаю, что Java автоматически сделает это за вас.

Обратите внимание, что в документации сказано, что это должна быть автоматическая установка, чтобы опция быстрого доступа работала. Кроме того, я дважды не проверял, что это на самом деле работает сам.

3 голосов
/ 26 августа 2009

Пожалуйста, используйте ссылку - http://mindprod.com/jgloss/javawebstart.html

РЕЗЮМЕ: Если вы хотите, чтобы JWS воссоздал ярлыки меню и / или рабочего стола, удалить как пункт меню, так и рабочий стол значок, затем запустите javaws -viewer на командной строки, затем нажмите кнопку, чтобы создать ярлыки. Если либо один существует, javaws.exe не будет создавать Другой. Это также может не создавать их где вы ожидали, так что смотрите вокруг.

1 голос
/ 07 ноября 2012

Я просто хотел добавить комментарий к вышеупомянутому решению, на случай, если это сэкономит кому-либо время.

ЕСЛИ ваше приложение установлено в кеше WebStart, но ярлык был удален (например, во время обновления Java или пользователь удаляет), javaws -import -silent -shortcut НЕ БУДЕТ просто создайте ярлык для приложения. По крайней мере, для 1.6.0_u35 и u37.

Кажется, что WebStart проверяет, находится ли приложение в кеше, если оно есть, оно просто завершает работу БЕЗ , создавая ярлык. Очень разочаровывает ...

...