Jar działa tylko w konsoli...

Odpowiedz Nowy wątek
2011-10-22 12:46
0

Witam

Przeszukałem kilkadziesiąt stron i nie mogę znaleźć odpowiedź na moje pytanie.
Używam Netbeansa 6.9.1, linuksa, OpenJDK 6.
W moim programie używam 2 bibliotek zewnętrznych i są one dołączone do Manifestu (Properties->Libraries itd.) i wszytko z nimi gra. Po kompilacji do jar program działa po przez konsole (java -jar program.jar) jak i po dwukliku.

Mój problem zaczyna się kiedy w programie zaczynam używać pliku tekstowego z zewnątrz. Netbeans po Build and Clean tworzy jara + katalog lib z bibliotekami w dist. W katalogu dist tworze jeszcze plik tekstowy file.txt. Gdy wywołuje program z konsoli wszystko jest ok. Odczyt z pliku oraz zapis do niego. Niestety jest problem kiedy chcę uruchomić tego jara dwuklikiem. Nic się w tym momencie nie dzieje.
Próbowałem dodać do class-path w manifeście ten plik i nadal nic.
Jak sądzicie co może być nie tak?

Pozdrawiam

Czy plik leży jako zasób w projekcie w Netbeans? Czy IDE w ogóle cokolwiek o nim wie? - Olamagato 2011-10-22 13:50

Pozostało 580 znaków

2011-10-22 13:47
0

Ścieżka "." wskazuje zawsze na katalog, z którego uruchomiłeś program. Wczytując więc plik poprzez względną ścieżkę np. "./plik.txt" niekoniecznie wczytujesz plik.txt znajdujący się obok jara. W Javie musisz pobrać ścieżkę aktualnego .jara i użyć jej za początek ścieżki.
http://stackoverflow.com/ques[...]he-path-of-a-running-jar-file

Pozostało 580 znaków

2011-10-22 17:33
0

Ja wgrywam plik taką konstrukcją:
File file = new File("configlog.txt");
W NetBeansie działa bez zarzutu, w konsoli również jest ok, tylko OpenJDK nie chcę mi tego ruszyć.
Zasób w Netbeansie, nie czaje trochę o co chodzi. Jakbyś mógł dokładniej wyjaśnić o co Tobie chodzi.

Co do twojego linka to ok, wyrzuca mi path, ale jak go dodam to wtedy Netbeans szaleje i nie widzi pliku.
Netbeans widzi path jako:
/home/uzytkownik/Pulpit/Program/build/classes/Program/configlog.txt
A już jar widzi:
file:/home/uzytkownik/Pulpit/Program/dist/Program.jar!/program/configlog.txt

Chciałbym aby program uruchamiany był przez dwuklik a nie konsole. Dodawałem już plik.txt do jara i też go nie widział.
Jeżeli dam plik.txt razem z jarem w jednym katalogu to działa ale tylko przez konsole.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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