2011-01-16 13 views
7

Jak utworzyć program Java, który może się aktualizować. Robię ten program do użytku w małym zespole. Nie potrzebuję żadnych zaawansowanych funkcji. Potrzebuję tylko prostego i minimalnego rozwiązania.Jak napisać program do samoczynnej aktualizacji w Javie?

+1

Muszę wyjaśnić, co masz na myśli przez samodaktualizację. Jest to dość obciążony i niejednoznaczny termin. – Uri

+0

Tak: masz na myśli program, który pisze samowykonalny kod lub program, który pobiera nową wersję samego siebie? –

+0

Przepraszam za ten termin ambiguos. To tak jak funkcja aktualizacji firefox. Automatycznie sprawdza aktualizacje w Internecie i aktualizuje bieżącą wersję. Próbuję zrobić małe narzędzie dla mojego zespołu i przekazać je zespołowi. Jest to normalna aplikacja do obracania pulpitu. Ciągle ulepszam ten program, ale nie chciałem ponownie wysyłać tego programu do wszystkich. – dmay

Odpowiedz

9

Java Web Start jest przeznaczony specjalnie do tego. Wysyłasz jeden plik jnlp, a java zajmuje się pobieraniem najnowszej wersji z serwera.

Oprócz tego można pobierać zaktualizowane klasy i zastępować je w czasie wykonywania.

+2

Należy zauważyć, że aplikacje, które (wielokrotnie) ładują zaktualizowane klasy podczas pracy mają tendencję do wycieku pamięci permgen. Możesz uniknąć przecieków, ale nie jest to proste. –

+1

Tak, lepiej, że będą ponownie uruchamiane co jakiś czas. – Bozho

0

Co masz na myśli przez samodaktualizację?

Jeśli masz na myśli, że zmienia ona swoje zachowanie w czasie wykonywania (co jest rzadkie), możesz utworzyć kod, który zapisuje kod Java, kompiluje go i ładuje go z działającego programu. Widziałem, że to zrobione.

Bardziej powszechnym scenariuszem jest posiadanie podstawowego programu z wtyczkami, w którym same wtyczki mogą być aktualizowane w środowisku wykonawczym. Najprostszym sposobem jest użycie interfejsów dla tych usług, a następnie załadowanie instancji tych typów w czasie wykonywania. Jednak napisanie w pełni niezawodnej architektury wtyczki zazwyczaj wymyśla koło. Istnieje wiele istniejących architektur, takich jak OSGi.

Powiązane problemy