我有一个java applet应用程序,我们的客户可以通过我们的网站访问它.由于Microsoft edge和chrome停止支持java插件,我们将applet转换为通过JNLP和Java Web Start启动,不幸的是,在两个浏览器中,JNLP已下载,客户应双击该文件以启动Java Web Start.
我们的客户对这种行为感到非常失望,我正试图找到解决这个问题的方法.
可能的解决方案
1)更改浏览器中的行为,询问用户点击a时要执行的操作JNLP link
.然后用户可以选择Open with: Java web start launcher
或save 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
这将打开一个简单的Java应用程序.
编辑对于无畏的Chrome,有一个hacky解决方案.
关闭Chrome,并记住要始终制作下一步中更改的文件的副本;-)
在Chrome库中找到chrome.[so|dll]
字节jnlp
并将其修补为例如jnl-
在您的Chrome用户个人资料目录中找到该文件Preferences
并将其修改为...
.
"download": { ... "extensions_to_open": "jnlp", ... },
下次单击指向JNLP文件的链接时,它将自动打开(使用分配的应用程序打开此文件类型,通常是这样javaws
).
查看源pref_names.cc后找到该属性.但Chrome认为扩展jnlp
是危险的,这也是我们需要修补库的原因.