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

Man*_*eer 9 java jnlp google-chrome java-web-start microsoft-edge

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

我们的客户对这种行为感到非常失望,我正试图找到解决这个问题的方法.

Sub*_*mal 9

可能的解决方案

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

编辑它在Firefox中工作,但它不适用于Chrome:请参阅相关的错误报告10877未解决的问题

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

演示示例(应用程序链接取自Oracle教程:运行Java Web Start应用程序)

javaws https://docs.oracle.com/javase/tutorialJWS/samples/deployment/NotepadJWSProject/Notepad.jnlp
Run Code Online (Sandbox Code Playgroud)

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

编辑对于无畏的Chrome,有一个hacky解决方案.

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

.

"download": {
    ...
    "extensions_to_open": "jnlp",
    ...
},
Run Code Online (Sandbox Code Playgroud)

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

查看源pref_names.cc后找到该属性.但Chrome认为扩展jnlp危险的,这也是我们需要修补库的原因.