Desarrollé una aplicación de escritorio Swing y estoy pensando en la mejor manera de proporcionar la función de actualización automática. Sé que JavaWebStart proporciona esto, pero creo que no se ajusta a mis necesidades porque necesito leer archivos locales, así que tendría que firmar el contenedor. Además, JWS requiere trabajo adicional para implementar en el servidor, mientras que ahora solo necesito subir el .jar.Función de actualización automática en una aplicación de escritorio Java Swing
He estado pensando acerca de este enfoque:
Una primera JAR (que nunca necesita ser actualizado) carga la pantalla de bienvenida, comprueba la versión actual en un config.xml y lo compara con la configuración del servidor. xml.
Si la versión del servidor es más reciente, pregúntele al usuario si desea actualizar. En ese caso, descargue el nuevo "main.jar", el nuevo "config.xml" y el nuevo icono/splash, marque MD5SUM y reemplace los archivos antiguos por los nuevos.
Ejecute "main.jar".
No sé Si estoy tratando de reinventar la rueda o si hay un patrón mejor que el que he puesto arriba.
Estás confirmando la rueda y ya lo sabes, ya que mencionas Java WebStart. La implementación en el servidor es mínima, solo necesita publicar algunos archivos, no hay necesidad de un componente activo en el servidor. –
Sugiero usar un certificado en lugar de verificar un hash desde https. Con la técnica de hash, un servidor https comprometido significa poner en peligro a todos los clientes de actualización automática./También verifique que está instalando una versión más actual para evitar ataques de degradación./WebStart proporciona una interfaz limitada para el uso de archivos, aunque el control/personalización del buscador de archivos es limitado. –
Creo que no es tan mínimo. Necesito desplegarlo en un servidor que no controlo en absoluto. No puedo cambiar los tipos miméticos, por ejemplo. Además, como he dicho, necesitaría acceder a los archivos locales, así que tendría que firmarlo. – ktulur