2009-08-26 113 views
9

我在我的appliation的jnlp描述符中使用快捷方式标签来为我的应用程序创建桌面链接和菜单条目。如何重新创建webstart应用程序的快捷方式?

如果这些快捷方式在客户端上被删除 - 他们如何重新安装没有用户操作?有没有jnlp文件的配置选项?

(顺便说一句,我使用的Java6)

+0

如果有人得到了一个解决方案,我很感兴趣呢!谢谢! – Szundi 2009-10-01 13:57:58

回答

3

请参考,这个链接 - http://mindprod.com/jgloss/javawebstart.html

摘要:如果你想JWS重新 菜单和/或桌面快捷方式,删除 两个菜单项和桌面 图标,然后在 命令行上运行javaws -viewer,然后单击按钮到 创建快捷方式。如果其中一个 存在,则javaws.exe将不会创建其他的 。它也可能不会创建你想要的地方 ,所以看看周围的 。

+2

谢谢! BUT:按照所描述的方式,用户需要在客户端上手动完成此操作 - 如果这可以自动完成,则会更好。在从web启动时,java会检查快捷方式是否存在 - 如果没有,请安装它们! – 2009-08-26 07:17:19

3

javaws上针对Java6的docs显示您可以使用可执行文件启动应用程序或执行他们称为控制选项的维护操作。

这些选项中的两个是:

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中的情况 – 2014-04-29 11:01:05

5

这里是自动方式的骨架(你在classpath这需要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 
} 
相关问题