Ho un'applicazione JNLP funzionante che ho bisogno di distribuire a vari utenti finali non tecnici.Combinazione di Launch4J e Java Web Start?
Se sulla macchina dell'utente è installata una JVM recente, tutto funziona correttamente. Fanno semplicemente doppio clic sul file JNLP che invio e Java Web Start fa il resto.
Ora vorrei distribuire qualcosa che funziona con o senza una JVM, ad esempio, un file .exe
che esegue il download automatico di una JVM compatibile se nessuna di queste è presente, quindi richiama javaws.exe
per scaricare i file .jar e avviare l'applicazione.
Launch4J è la corrispondenza più simile che ho trovato, ma non è possibile avviare un programma tramite javaws.exe
. Le uniche opzioni sono java
e javaw
Vorrei un prodotto che può:
- Generare un
.exe
self-contained file che non richiede una JVM per essere pre-installato - analizzare il file
.jnlp
e determinare la JVM corretta da scaricare se necessario (so che Java Web Start può scaricare una JVM se necessario, ma voglio evitare di doverne scaricare due, il primo per avviare Java Web Start e il secondo per eseguire l'applicazione che potrebbe richiedere un JVM specifica ma diversa) - Scaricare e installare la JVM automaticamente, non semplicemente indirizzare l'utente a una pagina di download Java o aprire una nuova procedura guidata di installazione.
- Richiedi una password di amministratore, se necessario (per le autorizzazioni di installazione della JVM. Non credo che questo sia incorporato nei programmi di installazione di Sun JVM.)
- Mostra solo una finestra di dialogo di sicurezza (Vorrei solo chiedere all'utente una volta, per confermare si fidano del generato
.exe
, ma non voglio un secondo prompt per confermare che si fida del file.jar
che verrà dalla stessa origine e firmato con lo stesso certificato.) Suppongo che ciò richiederà l'auto-downloader per installare il certificato prima di avviare JWS.) - (non essenziale) Scaricare le risorse dell'applicazione (ad esempio i file
.jar
) in background contemporaneamente alla JVM. Ciò richiederebbe l'esecuzione della cache prima dell'installazione della JVM, quindi la cache dovrebbe essere implementata nel codice nativo e losi interfacciava in seguito usando JNI.
Esiste un prodotto simile? Sospetto che non lo faccia, ma vale la pena sparare.
Aggiornamento ho trovato this article che ha soluzioni ad alcuni problemi correlati, anche se è stato progettato per l'installazione in linea e sono per lo più interessati con l'installazione on-line.
Non sono così preoccupato per le piattaforme non Windows. I Mac hanno sempre installato una JVM e presumo che la maggior parte degli utenti Linux abbia le conoscenze tecniche per trovare e fare doppio clic sul file '.jar' se necessario. – finnw