java - Chrome 和 JNLP 发布

标签 java google-chrome applet jnlp

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 票证的评论中,您可以找到一些解决方法提示,这些提示可能在某些环境中有效,但在一般情况下无效。

你可以做什么:

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

  2. 一般情况下,您不需要任何浏览器即可启动 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/

    相关文章:

    java - MyEclipse Professional 在与 MS sql 服务器连接时通过数据库浏览器给出 ssl 错误

    java - 从文件属性中检索标签列表

    javascript - Chrome 扩展程序 20 小时后没有 'Access-Control-Allow-Origin' header

    java - 如果我使用 applet,如何使用 Eclipse 创建 .jar 文件?

    java - 如何使用相同的查询将多行插入和更新到 Sql 数据库?

    java - Python - 线程、时序或函数使用?

    css - 你能在 Chrome Inspector 中添加新的 CSS 属性吗?

    google-chrome - Chrome 扩展 : How can I get global settings in preference

    java - "getAppletContext().showDocument(new URL"未重定向

    java - 这个异常是什么意思?我该如何解决这个问题? java