web-dev-qa-db-fra.com

Comment faire pour lancer automatiquement Java web start sans double-cliquer sur le JNLP

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.

9
ManKeer

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écute
javaws 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.

  1. fermez Chrome et gardez à l'esprit de toujours faire une copie des fichiers modifiés dans les étapes suivantes ;-)
  2. trouver dans la bibliothèque Chrome bibliothèque chrome.[so|dll] les octets jnlp et les patch comme par exemple jnl-
  3. recherchez dans votre Chrome le fichier 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.

9
SubOptimal