webentwicklung-frage-antwort-db.com.de

So starten Sie Java Web automatisch ohne Doppelklick auf das JNLP

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.

9
ManKeer

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ügung
javaws 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.

  1. schließe Chrome und denke daran, immer eine Kopie der Dateien zu erstellen, die in den nächsten Schritten geändert wurden ;-)
  2. suchen Sie in der Chrome library chrome.[so|dll]] die Bytes jnlp und patchen Sie sie beispielsweise als jnl-
  3. suchen Sie in Ihrem Chrome Benutzerprofilverzeichnis die Datei 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.

9
SubOptimal