我有一个java applet应用程序,我们的客户可以通过我们的网站访问它。由于Microsoft edge和chrome停止支持java插件,我们将applet转换为通过JNLP和Java Web Start启动,不幸的是,在两个浏览器中,JNLP已下载,客户应双击该文件以启动Java Web Start。
我们的客户对此行为感到非常失望,并且我正试图找到解决此问题的方法。
答案 0 :(得分:9)
可能的解决方案
1)更改浏览器中的行为,询问用户点击JNLP link
时要执行的操作。然后,用户可以选择Open with: Java web start launcher
或save file
。
编辑它在Firefox中有效,但不适用于Chrome:请参阅相关的错误报告10877和open 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的黑客解决方案。
chrome.[so|dll]
中找到字节jnlp
并将其修补为例如jnl-
Preferences
并将其修改为...
"download": {
...
"extensions_to_open": "jnlp",
...
},
下次单击指向JNLP文件的链接时,它将自动打开(使用分配的应用程序打开此文件类型,通常是javaws
)。
在查看来源pref_names.cc后找到该属性。但Chrome会将扩展程序jnlp
视为dangerous,这也是我们需要修补库的原因。