【发布时间】:2009-08-26 05:37:20
【问题描述】:
我在我的应用程序的 jnlp 描述符中使用快捷方式标记来为我的应用程序创建一个桌面链接和一个菜单项。
如果这些快捷方式在客户端上被删除 - 如何在没有用户操作的情况下自动重新安装它们? jnlp文件有配置选项吗?
(顺便说一句,我使用的是 java6)
【问题讨论】:
-
如果有人有解决方案,我也很感兴趣!谢谢!
标签: java java-web-start jnlp
我在我的应用程序的 jnlp 描述符中使用快捷方式标记来为我的应用程序创建一个桌面链接和一个菜单项。
如果这些快捷方式在客户端上被删除 - 如何在没有用户操作的情况下自动重新安装它们? jnlp文件有配置选项吗?
(顺便说一句,我使用的是 java6)
【问题讨论】:
标签: java java-web-start jnlp
这是一个自动方式的框架(你需要在你的类路径中 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
}
【讨论】:
请参考此链接 - http://mindprod.com/jgloss/javawebstart.html
总结:如果您希望 JWS 重新创建 菜单和/或桌面快捷方式,删除 菜单项和桌面 图标,然后在 命令行然后单击按钮 创建快捷方式。如果任何一个 存在,javaws.exe 不会创建 其他。它也可能不会创建它们 你期待的地方,所以看 周围。
【讨论】:
javaws 上用于 Java6 的 docs 表明您可以使用可执行文件来启动应用程序或执行它们调用控制选项的维护操作。
其中两个选项是:
javaws -uninstall <jnlp>
javaws -import [import-options] <jnlp>
你可以做的一件事是
javaws -import -silent -shortcut <jnlp>
因此,如果您可以运行一个脚本,该脚本首先卸载您的特定 jnlp 应用程序,然后静默重新导入它及其快捷方式,那么这将解决您的问题。我认为 Java 不会自动为您执行此操作。
请注意,文档说它必须是静默安装才能使快捷方式选项起作用。另外,我还没有仔细检查这是否真的有效。
【讨论】:
我只是想对上述解决方案添加评论,以防它节省任何时间。
如果您的应用程序安装在 WebStart 缓存中,但快捷方式已被删除(如在 java 更新期间,或用户删除) javaws -import -silent -shortcut 将不只是重新创建应用程序的快捷方式。至少对于 1.6.0_u35 和 u37。
似乎 WebStart 会检查应用程序是否在缓存中,如果是,它只是退出 不 创建快捷方式。很失望……
【讨论】: