Witam
Tworzę aplikację do łączenia się z bazą MySql. Używam Intellij IDEA. Dane do połączenia z bazą danych umieściłem w pliku database.txt, który umieściłem w katalogu głównym projektu, Jest on oczywiście dodany do .gitignore. Dostęp do niego uzyskuje tak:
Scanner scFile = new Scanner(new File("database.txt"));
Wszystko działa z poziomu kompilatora spod Intellij. Po akcji Build Artifact tworzy plik jar. Gdy go uruchamiam wyrzuca wyjątek:
java.io.FileNotFoundException: database.txt (Nie można odnaleźć określonego pliku).
Wstępnie pokonałem ten problem tworząc zezwnętrzny katalog C:\Resources i umieszczając w nim database.txt.
Potem Project Structure -> Modules -> Sources->Add Content Root i wskazanie na powyższy katalog. Dostęp do pliku wygląda tak:
Scanner scFile = new Scanner(new File("C:\Resources\database.txt"));
Teraz po utworzeniu pliku jar odpala bez problemu. I wszystko było by ok, tylko ścieżka dostępu jest typowa dla Windows, a projekt ten będzie edytowany również na Linuksie (poprzez github).
Jak uzyskać dostęp do database.txt po utworzeniu jar zachowując uniwersalny zapis ścieżki dostępu do tego pliku?