2009-08-26 11 views
9

Uso il tag di collegamento nel descrittore jnlp della mia app per creare un collegamento desktop e una voce di menu per la mia applicazione.Come ricreare il collegamento all'applicazione webstart?

Se queste scorciatoie vengono cancellate sul client - come possono essere reinstallate automaticamente senza intervento dell'utente? Esiste un'opzione di configurazione per il file jnlp?

(BTW sto usando java6)

+0

se qualcuno ha una soluzione, io sono troppo interessati! Grazie! – Szundi

risposta

3

Riferirsi questo link - http://mindprod.com/jgloss/javawebstart.html

SOMMARIO: Se si desidera JWS ricreare menu e/o collegamenti sul desktop, eliminare sia la voce di menu e l'icona desktop , quindi eseguire javaws -viewer sulla riga di comando quindi fare clic sul pulsante per creare le scorciatoie. Se esiste uno dei due , javaws.exe non crea l'altro . Potrebbe anche non crearli dove ti aspettavi, quindi guarda in giro.

+2

grazie! questo funziona, MA: nel modo descritto l'utente deve farlo manualmente sul client - sarebbe meglio se questo potesse essere fatto automaticamente, ad es.che durante il lancio dal web, java controlla se esistono collegamenti rapidi e, in caso contrario, li installa! –

3

Il docs per java6 su javaws mostrano che è possibile utilizzare il file eseguibile per lanciare un'applicazione o per eseguire operazioni di manutenzione che chiamano opzioni di controllo.

Due di queste opzioni sono:

javaws -uninstall <jnlp> 
javaws -import [import-options] <jnlp> 

una delle cose che puoi fare è

javaws -import -silent -shortcut <jnlp> 

Quindi, se è possibile eseguire uno script che prima di disinstallare il vostro particolare jnlp app e poi in silenzio ri -importa ciò e le scorciatoie che potrebbero risolvere il tuo problema. Non penso che Java lo farà automaticamente per te.

Si noti che la documentazione indica che deve essere un'installazione invisibile all'utente affinché l'opzione di scelta rapida funzioni. Inoltre, non ho ricontrollato che questo funziona davvero da solo.

1

Volevo solo aggiungere un commento sulla soluzione di cui sopra, nel caso in cui si salva qualsiasi momento.

SE l'applicazione viene installata nella cache WebStart, ma il collegamento è stato rimosso (come durante l'aggiornamento di Java, o l'utente rimuove) il javaws -import -silent -shortcut volontà non solo ricreare il collegamento per l'applicazione. Almeno per 1.6.0_u35 e u37.

Sembra che WebStart controlli se l'applicazione è nella cache, se lo è, esce semplicemente WITHOUT creando il collegamento. Molto deludente ...

+0

NB: questo sembra essere ancora il caso su Java 7 aggiornamento 51 –

5

Ecco uno scheletro di modo automatico (è necessario javaws.jar nel classpath per questo lavoro):

IntegrationService is = null; 
try 
{ 
    is = (IntegrationService) ServiceManager.lookup("javax.jnlp.IntegrationService"); 
} 
catch (UnavailableServiceException use) 
{ 
    // integration service unavailable 
} 

if (!is.hasDesktopShortcut()) 
{ 
    if (!is.requestShortcut(true, true, "Companyapp")) 
    { 
     // failed to install shortcuts 
    } 
} 
else 
{ 
    // shortcuts already exist 
} 
Problemi correlati