2010-03-19 22 views
6

Chciałbym wiedzieć, jakie pakiety są dostępne, aby utworzyć instalatory do dystrybucji aplikacji.Instalator dla aplikacji java

Aplikacja docelowa jest napisana w Javie. Instalator musi być w stanie:

  • zostać skompilowany za pomocą skryptu Ant
  • zostać skompilowany Linux (i Windows)
  • uruchomić na Windows i Linux
  • wykryje/obsłużyć uprzednio zainstalowane wersje z aplikacja

Obecnie używamy IzPack, ponieważ wykonuje wszystkie powyższe czynności, z wyjątkiem tych ostatnich: Nie można łatwo wykryć wcześniej zainstalowanego v Omówienie oprogramowania, i to jest dla nas przełamanie umowy.

Czy są jakieś inne pakiety, które pasują do rachunku?

Dziękujemy!

+0

Istnieją co najmniej trzy duplikaty w „pokrewne” na pasku bocznym. –

+3

@Paul Tomblin: Tyle tylko, że żaden z nich nie dotyczy sedna mojego pytania, które jest "wykrywanie/obsługa poprzednio zainstalowanych wersji aplikacji". Edytowane w celu podkreślenia tego. – bguiz

+1

W istocie autor napisał bardzo wyraźnie, nawet w wersji oryginalnej, sedno problemu. Przy pobieżnym spojrzeniu wszystko może wyglądać jak duplikat, ale ważne jest, aby zrozumieć podstawowy problem w pytaniu. –

Odpowiedz

5

Wydaje mi się, że może brakować pliku izPack CheckedHelloPanel, który (zgodnie z dokumentami internetowymi) sprawdza w rejestrze, czy inna wersja jest już zainstalowana i pyta, czy chcesz zainstalować drugą wersję.

OTOH ... jeśli masz na myśli to, że instalator powinien być w stanie przeprowadzić aktualizację na miejscu poprzedniej wersji, jest to naprawdę trudny problem, a ja jeszcze nie spotkałem się z instalatorem, który nawet próbuje zaadresuj to.

EDYCJA Na platformach innych niż Windows istnieje podstawowy problem. Jeśli aplikacja może zostać zainstalowana w niestandardowym miejscu, niemożliwe jest określenie z 100% pewnością, czy wcześniej zainstalowana była kopia (tej samej lub innej wersji). I to może być przyczyną, dla której CheckedHelloPanel obsługuje tylko wykrywanie starej wersji w systemie Windows.

To powiedziawszy, izPack jest open source, więc jeśli potrafisz znaleźć metodologię wykrywania poprzedniej wersji na Linuksie, możesz zmodyfikować CheckedHelloPanel, aby ją zaimplementować. I może izPack zaakceptuje łatkę. W każdym razie, polecam najpierw spojrzeć na to podejście, zanim porzucisz narzędzie, z którego w inny sposób jesteś zadowolony. (Zwłaszcza, jeśli tego, co chcesz zrobić, po prostu nie da się zrobić na Linuksie.)

+0

@Stephen C, uważam jednak, że funkcja jest dostępna tylko w systemie Windows, a mój instalator musi działać w systemie Windows. 'Additonal w Windows rejestr zostanie przeskanowany pod kątem wpisu, który określa, że ​​produkt jest już zainstalowany. (Http://izpack.org/documentation/panels.html#id4) – bguiz

+0

@ Stephen C, również go nie potrzebuję być w stanie wykonać uaktualnienie na miejscu. Załóżmy, że pierwsza wersja nie została jeszcze zainstalowana, ale kolejne wersje powinny wykryć poprzednie zainstalowane wersje. – bguiz

+0

+1 i sprawdź @Stephen C: Podążyłem za twoją sugestią, z wyjątkiem rozszerzenia 'CheckedHelloPanel' tak naprawdę nie działało dobrze (przynajmniej dla mojej docelowej aplikacji). H/w Rozszerzyłem 'IzPanel', aby osiągnąć podobny efekt, więc dzięki za sugestię! – bguiz

0

InstallAnywhere może to wszystko zrobić, a ISMP (InstallShield Muli-Platform) zrobiła to wszystko, gdy Flexera wciąż go sprzedawała, ale to komercyjne oprogramowanie . Nie znam darmowego odpowiednika, który wykonuje wszystkie te rzeczy.

+1

Używamy InstallAnywhere w pracy, a ja nie * polecam *. – leedm777

+1

Używamy go również w pracy ... moi współpracownicy próbują przekonać kierownictwo do przejścia na inne narzędzie, jest to koszmar i bardzo nieproduktywny pod względem czasu potrzebnego do zbudowania i przetestowania go. Myślę, że następna wersja będzie działać z InstallShield – Persimmonium

+0

Firmy, które stworzyły InstallAnywhere i InstallShield Multi-Platform, zostały kupione przez trzecią firmę, a ich linie produktów zostały połączone. Najważniejsze jest to, że ISMP nie jest już dostępny na rynku. Wciąż sprzedają produkty "InstallShield" dla rodzimych instalacji systemu Windows, ale nie dla wielu platform. –

1

Wypróbuj pod numerem InstallJammer. Jest bezpłatny, open source i powinien robić dokładnie to, co chcesz. W szczególności nie tylko wykryje poprzednią instalację, ale ma też pewne wyrafinowane możliwości wykrywania wielu poprzednich wersji i zbierania od nich potrzebnych informacji.

Pobierz i wypróbuj, a jeśli masz jakieś pytania, opuść forum i zapytaj. Zwykle odpowiadam każdemu dość szybko i całkowicie.0-]

+0

@Damon, przejrzałem dokumentację i pod 'Sprawdź poprzednią instalację' i' Dodaj instalację info', odnosi się do 'register' i' install registry'. Jestem ostrożny, że to się równa (część) rejestru systemu Windows. Jeśli nie, gdzie znajduje się ten rejestr? – bguiz

+0

InstallJammer zachowuje własny "rejestr" instalacji w systemie docelowym. Są one przechowywane na dysku, a nie w rejestrze systemu Windows, nawet w systemie Windows. Każda instalacja przechowuje pewne podstawowe informacje w rejestrze IJ i jest używana do sprawdzania poprzednich instalacji. Możesz także przechowywać własne informacje przy każdej instalacji, ponieważ instalator po prostu przechowuje to, czego potrzebuje. Jest to bardzo elastyczny system, więc myślę, że znajdziesz tam wszelkie informacje, które z niego chcesz. – Damon

Powiązane problemy