Chrome 和 JNLP 发布

Chrome and JNLP launch

Chrome 启动 JNLP 文件的方式与其他浏览器处理它的方式不同。 Chrome 将其视为下载而不是需要启动应用程序来处理的应用程序文件。

因此 JNLP 文件已下载 - Chrome 询问您是要保留还是丢弃它,您已保留它,然后单击它以启动 JNLP 应用程序。

Oracle 已建议人们从 Applets 转向 JNLP。

但是,Chrome 的这种行为使得很难将 Applet 迁移到 JNLP,除非是在受控环境中。如果您的站点有很多用户,您无法控制 - 他们中的许多人不会下载文件并单击它 运行。

OTOH,单击 "You sure you want to run this applet" 类对话框后将启动一个小程序。

有没有办法使从 Applets 到 JNLP 的迁移更顺利?

编辑:在 Launch webstart without downloading...? 被询问和回答之间,情况发生了变化。那时有一个解决方法(在接受的答案中描述) - 这个工作现在不再适用,因为 Chrome 不再是 运行s 小程序。

您提到的 JNLP 问题 chrome 是一个已知的 chrome 错误:https://bugs.chromium.org/p/chromium/issues/detail?id=10877

尽管这张票被标记为固定的,但实际上并不是固定的。我的版本仍然存在这个问题:51.0.2704.103 m

在 chrome 票的评论中,您可以找到一些解决方法提示,这些提示可能在某些环境中有效,但在一般情况下无效。

你能做什么:

  1. 作为解决方法,您可以为您的客户推荐其他浏览器:Firefox、Internet Explorer 以使用 JNLP 应用程序。 (这就是我们通常所做的。)

  2. 通常不需要任何浏览器即可启动 JNLP 应用程序。浏览器还将此委托给 JRE javaws。因此,您可以使用 JNLP URL 创建命令行,然后将其放入脚本文件中。如果您 link 将该脚本写入图标,您可以一键启动 JNLP 应用程序。

%JAVA_HOME%\bin\javaws http://my/url/myapp.jnlp

  1. 与2类似,但需要以另一种方式启动一次JNLP应用程序1st。在 JNLP (xml) 文件中有一个部分,您可以填写该部分以在第一次启动后创建一个图标。

    <shortcut online="true">
      <desktop/>
      <menu submenu="Start MyApp"/>
    </shortcut>    
    

在 windows 中,它将在以下位置创建:Start/All Programs/Start MyApp menu