2015-04-08 19 views
12

Sto per scrivere una nuova applicazione multipiattaforma e ho scelto JavaFX, principalmente a causa delle sue ricche librerie UI (sia standard che di terze parti) e della funzione di associazione dei dati nativi. La mia applicazione verrà implementata tramite il packaging nativo, sia per la mancanza del plug-in PPAPI Java (Chrome interromperà NPAPI in Chrome 42, che è ora in beta) che impedirebbe a un utente con Chrome di utilizzare WebStart, sia perché più "classico" esperienza utente, quindi WebStart e gli aggiornamenti automatici sono fuori dal tavolo.Implementazione di una funzionalità di aggiornamento automatico dell'applicazione JavaFX

Lo scenario sarebbe il seguente:

  1. avvia l'applicazione e verifica la presenza di aggiornamenti
  2. Se vengono trovati aggiornamenti, scaricarli e metterli in una cartella temporanea
  3. Allo spegnimento applicazione, prego scrivere la nuova scaricato file JAR sopra quelle vecchie
  4. riavviare automaticamente l'applicazione aggiornata

Tuttavia, alcuni domanda sorge nella mia mente (inizialmente questi due, ma potrei aggiornamento di questa domanda, non appena ho più):

  • E 'sicuro di farlo? Sto rischiando che in qualche modo la JVM diventi pazza se sovrascrivo alcuni dei JAR già utilizzati nel ciclo di vita dell'applicazione?
  • Non riesco a trovare un modo per riavviare automaticamente la mia applicazione JavaFX. È possibile?

Grazie a tutti per il vostro aiuto.

+2

è possibile creare un secondo programma di aggiornamento che controlla se ci è una nuova versione, aggiorna i file se necessario e quindi avvia l'applicazione. –

+1

Questo è il modo in cui sto attualmente esplorando, osservando più da vicino il Preloader JavaFX che potrebbe risultare utile in questo scenario. –

risposta

5

Dai un'occhiata a GetDown o UpdateFX. Implementa un downloader bootstrap che controlla gli aggiornamenti, li scarica e avvia l'applicazione non appena viene aggiornata

+0

Grazie per i vostri suggerimenti. Purtroppo sembra che né GetDown né UpdateFX rispondano alle mie esigenze: - UpdateFX: sembra che abbia bisogno dell'app in un singolo JAR, mentre ho qualche libreria che mi piacerebbe portare in giro come JAR separati; - GetDown: sembra piuttosto orientato verso Swing e mi piacerebbe mantenere un corso JavaFX puro. –

+1

Forse puoi applicare i principi ... – keuleJ

1

Forse puoi provare install4j anche se è pagato. La caratteristica principale che adoro di più è l'aggiornamento automatico e il modo in cui è possibile configurare l'installer in modo semplice (creare Linux - deb, rpm installer, Mac e programma di installazione per finestre) e può anche comprimere la versione jdk necessaria per eseguire il tuo app (questo significa che non gli utenti non hanno bisogno di avere quella versione di Java installata prima di utilizzare la vostra applicazione)

Anche se, potrebbe sembrare un po 'eccessivo nemico vostre esigenze