Wpis z mikrobloga

Piszę aplikacje z sqlite. Wszystko ładnie działa gdy uruchamiam prze IDE, a przy uruchamianiu z pliku jar aplikacja się wywala gdy ma się połączyć z bazą. W folderze z plikiem jar mam również plik z baza test.db.
Moje przykładowe połączenie https://pastebin.com/tLUTcysx
Jakieś sugestie, albo gdzie umieścić plik z baza w finalnej wersji?

#sqlite #java #naukaprogramowania #programowanie
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@fegwegw: w samym plik jar niema bazy, bo chcę do niej zapisywać w czasie działania.
Ale próbowałem ścieżki w stylu DriverManager.getConnection("jdbc:sqlite:C:/test.db"); i dalej nic.
  • Odpowiedz
@chiken: i dla baz embedded najlepiej podawać bezwzględną ścieżkę, np. "jdbc:sqlite:/home/me/test.db", oczywiście to nie musi być stałe, można to doregulować dynamicznie doklejając ścieżkę np. z System.getProperty("user.dir"), Paths.get("."), class.getResource(), itp. wg własnego uznania. Tyle tylko, czy w przypadku zamknięciu w jarze baza nie będzie tylko do odczytu?
  • Odpowiedz
@ppawel: wiem już jak odczytać bazę gdzieś na dysku, musi to wyglądać tak
c = DriverManager.getConnection("jdbc:sqlite:file:///C:/lol/test.db");

Ale nadal to nie działa przy gotowym pliku jar. Poprawnie działa tylko przy uruchamianiu przez IDE.
  • Odpowiedz
@ppawel: tyle tam kombinowałem, że nie wiem, ale prawdopodobnie trzeba było zaznaczyć checkbox "Include in project build" przy zewnętrznych bibliotekach
  • Odpowiedz
@chiken: aaaa, no to szkoda, że nie wrzuciłeś od razu stacktrace'a - bo możliwe, że nie był żaden FileNotFoundException w linii 6 tylko ClassNotFoundException w 5 ( ͡° ʖ̯ ͡°)
  • Odpowiedz