plik JAR z aplikacja i obrazki

0

Czesc,

Zrobilem budowanie mojej aplikacji do pliku JAR. Wszystko dziala fajnie oprocz wyswietlania obrazkow w GUI. Jezeli odpalam program w IDE to wszystko jest ok; struktura wyglada mniej-wiecej tak:

Projekt
---> gui_images
---> src

...katalogiem w ktorym odpalam program jest "Projekt". W kodzie jest taki fragment:

    public String getIconDirectory() {
        return /*System.getProperty("user.dir") + System.getProperty("file.separator") + */
                "gui_images" + System.getProperty("file.separator");

Problem pojawia sie przy wykonywaniu pliku jar, ktory ma nastepujaca strukture:

aplikacja.jar
---> gui_images
---> com
---------> mojpakiet
(itd)

jezeli uruchamiam (z domowego)
/home/domowy $ java -jar aplikacja.jar
to program bedzie szukal obrazkow w /home/domowy/gui_images
a nie w gui_images wewnatrz JAR'a.

Jak to zalatwic? Z gory dzieki!

0

Chciałem to zrobić też za pomocą getResource(), ale dzieje się dziwna rzecz:

To co poniżej wykonuję z poziomu IDE, pliki są w katalogu gui_images:

// Te dwie linijki ok, poprawnie "widzi" plik, wyswietli jego "dlugosc" dobrze
        java.io.File f = new java.io.File("gui_images/run.png");
        System.out.println(f.length());

// Tutaj dostane NullPointerException argument do konstruktora jest null :(
        new ImageIcon(MainWindow.class.getResource("gui_images/run.png"));

Zauwazylem ze niektorzy daja jako argument do getResource sciezke zaczynajaca sie od / czyli w moim przypadku by to bylo "/gui_images/run.png". Im to dziala widocznie, ale mi nie - jestem na linuksie i on / widzi jako glowny katalog a nie odwolanie do biezacego... :/

0

przepraszam ze nastepny post, ale zapomnialem dopisac wyzej:
nawet jak do getResource() dam pelna sciezke od / az do pliku to tez dostane null ...

To sa dwie linijki roznicy w pliku a dzialanie diametralnie inne [glowa]

1 użytkowników online, w tym zalogowanych: 0, gości: 1