Ich habe eine Java Applet-Anwendung, auf die unsere Kunden über unsere Website zugreifen können. Da Microsoft Edge und chrome das Plug-In Java nicht mehr unterstützen, haben wir das Applet so konvertiert, dass es über JNLP und Java Web Start gestartet wird heruntergeladen und der Kunde sollte auf die Datei doppelklicken, um einen Java Web Start zu starten.
Unsere Kunden sind von diesem Verhalten total enttäuscht. Ich versuche, eine Lösung für dieses Problem zu finden.
Mögliche Lösungen
1) Ändern Sie das Verhalten im Browser, um den Benutzer zu fragen, was zu tun ist, wenn er auf JNLP link
Klickt. Dann kann der Benutzer Open with: Java web start launcher
Oder save file
Auswählen.
edit Es funktioniert in Firefox, aber nicht in Chrome: siehe entsprechende Fehlerberichte 10877 und die offene Fragen
2) Stellen Sie dem ausführenden Benutzer ein Skript zur Verfügungjavaws https://example.com/your_application.jnlp
Ein Beispiel zur Demonstration (Anwendungslink aus dem Oracle-Tutorial: Ausführen einer Java Web Start Application )
javaws https://docs.Oracle.com/javase/tutorialJWS/samples/deployment/NotepadJWSProject/Notepad.jnlp
Dies öffnet eine einfache Java Anwendung.
edit Für die Furchtlosen gibt es eine Hacky-Lösung für Chrome.
chrome.[so|dll]
] die Bytes jnlp
und patchen Sie sie beispielsweise als jnl-
Preferences
und ändern Sie sie als ....
"download": {
...
"extensions_to_open": "jnlp",
...
},
Wenn Sie das nächste Mal auf einen Link zu einer JNLP-Datei klicken, wird diese automatisch geöffnet (mit der Anwendung, die zum Öffnen dieses Dateityps zugewiesen ist, ist dies normalerweise javaws
).
Die Eigenschaft wurde nach einem Blick in die Quelle pref_names.cc gefunden. Aber Chrome behandelt die Erweiterung jnlp
als gefährlich deshalb müssen wir auch die Bibliothek patchen.