可能的解决方案
1)更改浏览器中的行为,询问用户单击JNLP链接时要执行的操作.然后,用户可以选择打开方式:Java Web启动启动器或保存文件.
编辑它在Firefox中工作,但它不适用于Chrome:请参阅相关的错误报告10877和open issues
2)为执行javaws https://example.com/your_application.jnlp的用户提供脚本
javaws https://docs.oracle.com/javase/tutorialJWS/samples/deployment/NotepadJWSProject/Notepad.jnlp
这将打开一个简单的Java应用程序.
编辑对于无畏的Chrome,有一个hacky解决方案.
>关闭Chrome,并记住始终制作下一步中更改的文件的副本;-)
>在Chrome库中找到chrome.[so | dll]字节jnlp并将其修补为例如jnl-
>在Chrome用户个人资料目录中找到文件偏好设置并将其修改为…
.
"download": {
...
"extensions_to_open": "jnlp",...
},
下次单击指向JNLP文件的链接时,它将自动打开(使用分配的应用程序打开此文件类型,通常是javaws).
在查看源pref_names.cc后找到该属性.但Chrome将扩展名jnlp视为dangerous,这也是我们需要修补库的原因.