如何在不双击JNLP的情况下自动启动java web启动

时间:2016-04-04 06:30:38

标签: java google-chrome java-web-start jnlp microsoft-edge

我有一个java applet应用程序,我们的客户可以通过我们的网站访问它。由于Microsoft edge和chrome停止支持java插件,我们将applet转换为通过JNLP和Java Web Start启动,不幸的是,在两个浏览器中,JNLP已下载,客户应双击该文件以启动Java Web Start。

我们的客户对此行为感到非常失望,并且我正试图找到解决此问题的方法。

1 个答案:

答案 0 :(得分:9)

可能的解决方案

1)更改浏览器中的行为,询问用户点击JNLP link时要执行的操作。然后,用户可以选择Open with: Java web start launchersave file

编辑它在Firefox中有效,但不适用于Chrome:请参阅相关的错误报告10877open issues

2)为执行执行的用户提供脚本javaws https://example.com/your_application.jnlp

演示示例(应用程序链接取自Oracle教程:Running a Java Web Start Application

javaws https://docs.oracle.com/javase/tutorialJWS/samples/deployment/NotepadJWSProject/Notepad.jnlp

这将打开一个简单的Java应用程序。

编辑对于无所畏惧的人来说,有一个针对Chrome的黑客解决方案。

  1. 关闭Chrome,并记住要始终复制下一步中更改的文件; - )
  2. 在Chrome库chrome.[so|dll]中找到字节jnlp并将其修补为例如jnl-
  3. 在您的Chrome用户个人资料目录中找到文件Preferences并将其修改为...
  4. "download": {
        ...
        "extensions_to_open": "jnlp",
        ...
    },
    

    下次单击指向JNLP文件的链接时,它将自动打开(使用分配的应用程序打开此文件类型,通常是javaws)。

    在查看来源pref_names.cc后找到该属性。但Chrome会将扩展程序jnlp视为dangerous,这也是我们需要修补库的原因。