Chrome 启动 JNLP 文件的方式与其他浏览器处理它的方式不同。 Chrome 将其视为下载而不是应用程序文件,需要启动应用程序才能处理它。
因此,JNLP 文件被下载 - Chrome 询问您是否要保留或丢弃它,您已保留它,然后单击它以启动 JNLP 应用程序。
Oracle 建议人们从 Applet 迁移到 JNLP。
但是,Chrome 的这种行为使得将 Applet 迁移到 JNLP 变得非常困难,除非在受控环境中。如果您的网站有很多您无法控制的用户 - 他们中的许多人不会下载文件并单击它来运行它。
OTOH,在您单击“您确定要运行此小程序”类型的对话框后,将启动一个小程序。
有没有办法让从 Applet 到 JNLP 的迁移更加顺利?
编辑:时间 Launch webstart without downloading...? 之间情况发生了变化被问及回答。当时有一个解决方法(在接受的答案中描述) - 这个方法现在不再适用,因为 Chrome 不再运行小程序。
最佳答案
您提到的 JNLP 的 chrome 问题是一个已知的 chrome bug:https://bugs.chromium.org/p/chromium/issues/detail?id=10877
尽管这张票被标记为“已修复”,但它实际上并未被修复。我的版本仍然遇到这个问题:51.0.2704.103 m
在 chrome 票证的评论中,您可以找到一些解决方法提示,这些提示可能在某些环境中有效,但在一般情况下无效。
你可以做什么:
作为一种解决方法,您可以为您的客户建议其他浏览器:Firefox、Internet Explorer,以便与 JNLP 应用程序配合使用。 (这就是我们通常所做的。)
一般情况下,您不需要任何浏览器即可启动 JNLP 应用程序。浏览器也将其委托(delegate)给 JRE javaws。因此,您可以使用 JNLP URL 创建命令行,然后将其放入脚本文件中。如果将该脚本链接到一个图标,您可以一键启动 JNLP 应用程序。
%JAVA_HOME%\bin\javaws http://my/url/myapp.jnlp
与2类似,但您需要以另一种方式第一次启动JNLP应用程序一次。在 JNLP (xml) 文件中,您可以填写一个部分,以便在第一次启动后创建一个图标。
<shortcut online="true"> <desktop/> <menu submenu="Start MyApp"/> </shortcut>
在 Windows 中,它将在以下位置创建:开始/所有程序/启动 MyApp 菜单
关于java - Chrome 和 JNLP 发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37982088/