Ich habe ein kleines Programm mit einem Datenvorrat, der in einer externen Textdatei gespeichert werden soll. Aus meiner Sicht macht es Sinn, die Datei im selben Ordner wie die .jar abzulegen. Allerdings habe ich hier gelesen, dass der jar-Pfad nicht benutzt werden sollte.
Warum sollte man ihn nicht nutzen? Wo soll man sonst zu dem Programm gehörige Daten abspeichern, wenn nicht im selben Ordner?
an der Stelle geht es um einen anderen Zusammenhang ... Arbeitsverzeichnis und Programmverzeichnis sind dort verschieden - das sollte nur in Ausnahmefällen so sein ... par die Datei in das Verzeichnis mit JAR und gut ist
Hier gehen Meinungen gerne mal auseinander.
In user.Home in einem eigenen Ordner zu speichern hat den Vorteil: es ist egal wo die .jar liegt.
Die Datei relativ zur jar speichern, hat den vorteil: man alles beisammen und kann es leicht exportieren, ohne das man wichtige Dateien vergisst (welche im Notfall neu angelegt werden sollten).
Imho sollten config-Dateien im selben Ordner wie die JAR liegen. Soetwas wie Speicherstände sind in user.home imho besser aufgehoben.
Du wirst auch noch bestimmt lesen, dass man externe Dateien am besten komplett in user.home ablegt. Das hat durchaus seine rechtfertigung, da nicht immer gewährleistet sein kann, dass du mit der jar im aktuellen Verzeichnis schreibrechte hast.
gut - dann schmeise ich ab sofort alle Bilder/Dateien und DLL's in das Benutzerverzeichnis ... gleich in jedes Bernutzerverzeichnis für alle Benutzer die es auf dem Rechner gibt
Das hat durchaus seine rechtfertigung, da nicht immer gewährleistet sein kann, dass du mit der jar im aktuellen Verzeichnis schreibrechte hast.
daher werden auch Benutzerdaten in das Benutzerverzeichnis gespeichert ... Rest landet bei der Installation in das Programmverzeichnis
bevor wir uns jetzt hier beide die Köpfe einschlagen ... sollte der OP erstmal definieren was er unter "externer" Datei versteht ... da die meisten immer Versuchen alles in die JAR zu packen, daher assoziere ich mit externe Datei eine Datei die er mal nicht in die JAR packen will .. sprich es ist keine vom Benutzer angelegte Datei
Es handelt sich um ein paar hundert Strings, die ich in eine Textdatei auslagern möchte, sodass der Benutzer die Möglichkeit hat, selbst die Texte zu verändern.
gut - dann schmeise ich ab sofort alle Bilder/Dateien und DLL's in das Benutzerverzeichnis ... gleich in jedes Bernutzerverzeichnis für alle Benutzer die es auf dem Rechner gibt
Dachte ich mir auch, als ich das zum ersten mal gelesen habe^^. ich weis nicht mehr wer es war, aber die Schreibrechte sind ja iwo begründet, auch wenn ich bisher nie Probleme damit hatte. Wie ich es machen würde, habe ich ja geschrieben und schön mit imho gekennzeichnet