2009-08-26 3 views
9

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

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

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

+0

если кто-то получил решение, я тоже интересно! благодаря! – Szundi

ответ

3

Пожалуйста refere эту ссылку - http://mindprod.com/jgloss/javawebstart.html

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

+2

спасибо! это работает, НО: описанным образом пользователю необходимо сделать это вручную на клиенте - было бы лучше, если бы это можно было сделать автоматически, например.что при запуске из Интернета java проверяет наличие ярлыков - и если нет, устанавливает их! –

3

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

Два из этих опций:

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

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

javaws -import -silent -shortcut <jnlp> 

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

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

1

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

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

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

+0

Примечание: это, по-видимому, сохраняется в случае обновления Java 7 51 –

5

Вот скелет автоматическим способом (вам нужно 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 
}