2011-01-16 33 views
7

¿Cómo puedo crear un programa Java que pueda actualizarse a sí mismo? Hago este programa para usar dentro de un equipo pequeño. No necesito ninguna característica avanzada. Solo necesito una solución simple y mínima.¿Cómo escribir un programa de actualización automática en Java?

+1

Lo que necesita para aclarar lo que quiere decir con autoactualización. Este es un término bastante cargado y ambiguo. – Uri

+0

Sí: ¿se refiere en realidad a un programa que escribe código autoejecutable o un programa que descarga una nueva versión de sí mismo? –

+0

Perdón por ese término ambiguo. Simplemente como la característica de actualización de Firefox. Comprueba automáticamente las actualizaciones a través de Internet y actualiza la versión actual. Intento hacer una pequeña utilidad para mi equipo y distribuirla al equipo. Esta es una aplicación normal de escritorio. También estoy mejorando continuamente este programa, pero no quería volver a enviar este programa a todos. – dmay

Respuesta

9

Java Web Start es específicamente para esto. Envía un archivo jnlp y java se encarga de buscar la versión más reciente de un servidor.

Aparte de eso, puede descargar clases actualizadas y reemplazarlas en tiempo de ejecución.

+2

Se debe tener en cuenta que las aplicaciones que (repetidamente) cargan clases actualizadas mientras se ejecutan tienden a perder memoria permgen. Puede evitar las filtraciones, pero no es sencillo. –

+1

sí, es mejor que se reinicien de vez en cuando. – Bozho

0

¿Qué quiere decir con autoactualización?

Si quiere decir que cambia su comportamiento en el tiempo de ejecución (lo que es raro), podría crear código que escriba código java, lo compile y lo cargue desde un programa en ejecución. He visto eso hecho.

El escenario más común es tener un programa central con complementos, donde los complementos se pueden actualizar en tiempo de ejecución. La forma más sencilla de hacerlo es simplemente usar interfaces para estos servicios y luego cargar instancias de estos tipos en tiempo de ejecución. Sin embargo, escribir un marco de plug-in totalmente robusto suele reinventar la rueda. Hay muchas arquitecturas existentes, como OSGi.

Cuestiones relacionadas