Java – jary i liby

Gdy zaczynałem pisać jKatalog wiedziałem, że chcę aby program automagicznie potrafił aktualizować się do najnowszej wersji. Na początku obawiałem się jak wytrzyma to mój serwer i czy wykupiony roczny limit transferu nie zostanie zjedzony w ciągu miesiąca. Na szczęście program, który został napisany w Javie jest bardzo lekki – do niedawna to było około 200 kilobajtów, w ostatniej wersji trochę ponad 400 kilo. Tworząc swingowy interfejs graficzny w Netbeans trzeba zwykle z korzystać z dodatkowych bibliotek, które potem trzeba dołączać do własnej aplikacji. W przypadku ostatniej wersji jKatalogu wygląda to tak, że jest jKatalog.jar i katalog lib, a w nim dodatkowe liby – appframework-xx.jar, swing-layout-xx.jar oraz swing-worker-xx.jar. Jakie są to liby tak naprawdę zależy od użytej wersji Netbeansów i wybranych ustawień formatki. Gdy powstaje nowa wersja jKatalogu w oparciu o nowego NB to oprócz aktualizacji głównego programu trzeba by też aktualizować te biblioteki. Chciałem rozwiązać to prościej – wszystkie dodatkowe biblioteki wrzucić do głównego jar’a. No cóż, jak zacząłem czytać jak to należałoby zrobić według kilku mądrych głów, to odechciało mi się – to nie było proste. Wymyśliłem pewien trick, takie wstrzyknięcie wymaganych bibliotek do gotowego programu:

  1. napisać normalnie program w NB
  2. gdy program już gotowy do publikacji uruchomić midnight commander (w Ubuntu poprzez mc)
  3. na jednym panelu „wejść” w jar programu
  4. na drugim panelu „wejsć” w jar biblioteki
  5. skopiować „katalog główny” ze skompilowanymi klasami do „katalogu głównego” programu
  6. powtórzyć to dla wszystkich bibliotek
  7. i tyle!

Działa od razu po zamknięciu jar’a naszego programu. Można go uruchomić gdziekolwiek, nie będzie już wymagał dodatkowych bibliotek. Waga pliku programu siłą rzeczy musiała powiększyć się 🙂
Dokładnie widać to na filmiku:

One Reply to “Java – jary i liby”

  1. Trzeba się jednak zastanowić nad zgodnością z licencjami załączonych bibliotek.

Dodaj komentarz