J'ai une application d'applet Java à laquelle nos clients ont accès via notre site Web. Depuis que Microsoft Edge et chrome ont cessé de prendre en charge le plug-in Java, nous avons converti l'applet à lancer via JNLP et Java Web Start, malheureusement, dans les deux navigateurs, le JNLP téléchargé et le client doit double-cliquer sur le fichier pour lancer un Java Web Start.
Nos clients sont totalement déçus de ce comportement, et j'essaie de trouver une solution à ce problème.
Solutions possibles
1) Modifiez le comportement dans le navigateur pour demander à l'utilisateur quoi faire quand il clique sur un JNLP link
. L'utilisateur peut ensuite sélectionner Open with: Java web start launcher
ou save file
.
edit Cela fonctionne dans Firefox mais cela ne fonctionne pas avec Chrome: voir les rapports de bogues associés 10877 et le problèmes ouverts
2) Fournir un script à l'utilisateur qui exécutejavaws https://example.com/your_application.jnlp
Un exemple de démonstration (lien d'application tiré du tutoriel Oracle: Exécution d'une Java Web Start Application )
javaws https://docs.Oracle.com/javase/tutorialJWS/samples/deployment/NotepadJWSProject/Notepad.jnlp
Cela ouvrira une simple application Java.
edit Pour les intrépides, il existe une solution hacky pour Chrome.
chrome.[so|dll]
les octets jnlp
et les patch comme par exemple jnl-
Preferences
et modifiez-le comme ....
"download": {
...
"extensions_to_open": "jnlp",
...
},
La prochaine fois que vous cliquerez sur un lien vers un fichier JNLP, il sera ouvert automatiquement (avec l'application qui est assignée pour ouvrir ce type de fichier, normalement c'est javaws
).
La propriété a été trouvée après avoir regardé la source pref_names.cc . Mais Chrome traite l'extension jnlp
comme dangereux c'est pourquoi nous devons également patcher la bibliothèque.