2016-04-04 49 views
5

Ho un'applicazione di applet java a cui si accede dai nostri clienti attraverso il nostro sito web. Poiché Microsoft Edge e Chrome hanno smesso di supportare java plug-in, abbiamo convertito l'applet da avviare tramite JNLP e Java Web Start, Sfortunatamente, in entrambi i browser il JNLP è stato scaricato e il cliente deve fare doppio clic sul file per avviare Java Web Start.Come avviare java web start automaticamente senza fare doppio clic su JNLP

I nostri clienti sono del tutto delusi da questo comportamento e sto cercando una soluzione per questo problema.

+0

Il server forniscono il corretto [tipo di contenuto per un JNLP] (https://www.google.com.au/search?q=content-type+for+a+JNLP&oq=content-type+for+ a + JNLP & AQS = chrome..69i57j0.580j0j7 & sourceid = cromo & ie = UTF-8)? –

+2

Sì, Andrew .... Il server fornisce il tipo di contenuto corretto per JNLP, ma attualmente Java Web Start non parte da Microsoft Edge o Google Chrome, e la risposta fornita per http://stackoverflow.com/questions/7556986/auto-launch-jnlp-on-click è valido per quel periodo (2011) ma non funziona ora. – ManKeer

risposta

8

Possibili soluzioni

1) modificare il comportamento nel browser per chiedere all'utente cosa fare quando si clicca su un JNLP link. Quindi l'utente può selezionare Open with: Java web start launcher o save file.

modificare Sta funzionando in Firefox, ma non funziona con Chrome: vedi bug report relativi 10877 e la open issues

2) Fornire uno script per l'utente che esegue
javaws https://example.com/your_application.jnlp

Un esempio di dimostrazione (collegamento dell'applicazione tratto dal tutorial di Oracle: Running a Java Web Start Application)

javaws https://docs.oracle.com/javase/tutorialJWS/samples/deployment/NotepadJWSProject/Notepad.jnlp 

Si aprirà una semplice applicazione Java.

modifica Per gli impavidi c'è una soluzione hacky per Chrome.

  1. vicino Chrome, e tenere a mente di fare sempre una copia dei file alterati nelle fasi successive ;-)
  2. ritrovamento nella biblioteca Chrome chrome.[so|dll] i byte jnlp e patch come ad esempio jnl-
  3. trovare nella vostra cartella del profilo utente di Chrome il file Preferences e modificare come ...

.

"download": { 
    ... 
    "extensions_to_open": "jnlp", 
    ... 
}, 

prossima volta che si fa clic su un link a un file di JNLP verrà aperto automaticamente (con l'applicazione che è assegnato per aprire questo tipo di file, è normalmente di javaws).

La proprietà è stata trovata dopo aver esaminato la fonte pref_names.cc. Ma Chrome considera l'estensione come dangerous ed è per questo motivo che dobbiamo applicare la patch anche alla libreria.

+0

come posso applicare il primo punto, per quanto riguarda l'esempio che hai citato, non funziona sul sito di Oracle. inoltre, sto cercando di eseguire direttamente il Jave Web Start, non ho bisogno che il cliente veda alcuna modifica, basta cliccare sul link e tutto funzionerà esattamente come lui/lei eseguirà un'applet. – ManKeer

+0

@ManKeer Mi dispiace per colpa mia. Non ha prestato abbastanza attenzione ai browser in questione. Modifico la mia risposta almeno per Chrome. Per Microsoft Edge non posso aiutarti, non ce l'ho. – SubOptimal

+0

@ManKeer Non è una soluzione reale per i tuoi clienti, ma forse sei comunque interessato. Dai un'occhiata alla "soluzione hacky" nella mia risposta. – SubOptimal

Problemi correlati