Tengo una aplicación JNLP en funcionamiento que necesito distribuir a varios usuarios finales no técnicos.¿Combinación de Launch4J y Java Web Start?
Si la máquina del usuario tiene una JVM reciente instalada, todo está bien. Simplemente hacen doble clic en el archivo JNLP que les envío y Java Web Start hace el resto.
Ahora me gustaría distribuir algo que funcione con o sin una JVM, p. Ej. un archivo .exe
que descarga automáticamente una JVM compatible si no está presente, luego invoca javaws.exe
para descargar los archivos .jar y ejecutar la aplicación.
Launch4J es la coincidencia más cercana que he encontrado, pero no puede iniciar un programa a través de javaws.exe
. Las únicas opciones son java
y javaw
Me gustaría tener un producto que puede:
- Generar un archivo autónomo
.exe
que no requiere una JVM que ser pre-instalado - analizar el archivo
.jnlp
y determine la JVM correcta para descargar si es necesario (sé que Java Web Start puede descargar una JVM si es necesario, pero quiero evitar tener que descargar dos, la primera para arrancar Java Web Start y la segunda para ejecutar la aplicación que puede requerir una JVM específica pero diferente.) - Descargue e instale la JVM automáticamente, no, simplemente dirija al usuario a una página de descarga de Java o abra un nuevo asistente de instalación.
- Solicitar una contraseña de administrador si es necesario (para los permisos para instalar la JVM. Yo no creo que esto está incorporado en los programas de instalación de Sun JVM.)
- Mostrar sólo un diálogo de seguridad (me gustaría pedir al usuario simplemente una vez, para confirmar que confían en el
.exe
generado, pero no quiero un segundo aviso para confirmar que confían en el archivo.jar
que será de la misma fuente y firmado con el mismo certificado.) Supongo que esto requerirá el descargador automático para instale el certificado antes de iniciar JWS.) - (no esencial) Descargue los recursos de la aplicación (por ejemplo,
.jar
archivos) en el fondo simultáneamente con la JVM. Esto requeriría que la memoria caché se ejecute antes de que se instale la JVM, por lo que la memoria caché debería implementarse en código nativo y elDownloadService
interactuaría más tarde con JNI.
¿Existe un producto como este? Sospecho que no, pero vale la pena intentarlo.
actualizaciónthis article he encontrado que tiene soluciones a algunos problemas relacionados, a pesar de que está diseñado para su instalación en línea y yo soy refiere principalmente a la instalación en línea.
No estoy tan preocupado por plataformas que no sean Windows. Los Mac siempre tienen una JVM instalada, y supongo que la mayoría de los usuarios de Linux tienen los conocimientos técnicos para encontrar y hacer doble clic en el archivo '.jar' si es necesario. – finnw