[JAVA] Ścieżka w jarze

Witam.

Skompilowałem program do jara i mam pewien problem.

Struktura katalogów i plików mniej więcej wygląda tak : 

Jar
|
|
|--zasoby
|       |
|       |--biblioteki
|       | |
|       | |--dane.txt
|       
|       
|--klasy
|       |
|       |-klasa.CLASS

i tu mam problem - jak z pliku klasa.CLASS odwołać się do dane.txt? chodzi mi o to, jaką wartość ma mieć fileName w tym kodzie : 

BufferedReader in= new BufferedReader(new FileReader(
        new File(fileName).getAbsoluteFile()));

 

Przede wszystkim, to nie jest plik na dysku, więc się do niego nie dobierzesz przez File.

 

Tu  masz właściwe podejście:

http://stackoverflow.com/questions/4585553/how-to-load-resource-from-jar-file-packaged-in-a-war-file#4585668

Przy czym pamiętać należy, że upychanie w jarze w żaden sposób nie zabezpiecza danych, a jedynie utrudnia do nich dostęp (głównie dla programisty) i spowalnia uruchamianie (ClassLoader to dosyć mulasta zabawka dla dużych chłopców, którzy wiedzą co robią). Zazwyczaj lepiej stworzyć zewnętrzną strukturę katalogową i zaszyfrować co poniektóre pliki.

To są dane, które nie są wymagane, ale ich obecność umila życie użytkownikowi, jeśli by mu przeszkadzało cokolwiek i by wiedział jak co zrobić, mógłby to zrobić ręcznie

 

Myślałem też nad dość topornym moim zdaniem rozwiązaniem, aby to wszystko wrzucić w klasę z LinkedList w osobnym pliku i ustawić metodę która by zwracała odpowiednią składową tej listy