Anwendereinstellungen speichern

slawaweis

Bekanntes Mitglied
Hallo,

diese Frage ist nicht neu, ich erweitere es aber ein wenig. Ich möchte die Einstellungen für jeden Anwender speichern. Bisher habe ich das ganz einfach über ein ".MyApp"-Ordner in "user.home" gespeichert. Ich möchte jetzt aber wissen, ob es da bessere Wege gibt. Wenn ich mein Windows XP ansehe, wie viele ".xyz"-Ordner da schon rumgeistern, so frage ich mich, ob es in Java nicht irgendwo einen Mechanismus dafür gibt, Einstellungen für Anwender artgerecht abzulegen, was bei Windows "{user.home}/%Applications%/Company" wäre. Vielleicht gibt es auch ein Framework irgendwo, welches diese Unterscheidungen regelt.

Ich habe mir auch java.util.prefs.Preferences angesehen. Aber ich will keine Registry, ich möchte alles auf Dateiebene halten, der Einfachheit und Wartung wegen. Ich möchte z.B. umfangreiche Log-Dateien pro User anlegen, welche bei Bedarf an mich zurückgeschickt werden können. Das in der Registry abzulegen wäre Unsinn.

Gibt es also was besseres oder ist "{user.home}/.MyApp" der immer noch gängigste Weg?

Slawa
 

Sergeant_Pepper

Bekanntes Mitglied
eine Variante fällt mir ein: du könntest die Informationen in einer Datenbank hinterlegen.

Arbeitet deine Software ohnehin schon mit einer Datenbank? Und muss sich ein Benutzer dort authentifizieren, bevor mit deinem Programm arbeiten kann? Wenn ja, dann kannst du die Einstellungen dort hinterlegen.

Wenn dein Programm ohne Datenbank arbeitet, dann könntest du vielleicht sowas wie eine eingebettete DB nehmen. Siehe Apache Derby ? Wikipedia.
Damit habe ich selbst noch nicht gearbeitet. Aber ich könnte mir vorstellen, dass du die DB-Datei in diesem Fall nahe beim Programm ablegen kannst, und dadurch weder in die Registry (nur unter Windows, also nicht Plattform-unabhängig) oder in das Home-Verzeichnis schreiben musst.
 
T

tuxedo

Gast
Unter LInux gibts keine Registry. Da werden die Preferences im Dateisystem gespeichert. Vielleicht lässt sich die Implementierung wie sie unter Linux genutzt wird auch unter Windows nutzen?!

- Alex
 

Sheepsy90

Mitglied
Du könntest beispielsweise über die System den derzeitigen Nutzer herausfinden und dann wie unter Linux einen .config File anlegen. Du könntest ihn natürlich auch User.conf nennen oder so. Jedenfalls würde ich ihn im gleichem Verzeichnis wie das Executable legen. Oder im Ordner des jeweiligen Users einen Ordner erstellen, indem der ConfigFile für das Programm liegt.
 
G

Gastredner

Gast
Unter LInux gibts keine Registry. Da werden die Preferences im Dateisystem gespeichert. Vielleicht lässt sich die Implementierung wie sie unter Linux genutzt wird auch unter Windows nutzen?!

- Alex
Ich meine mich daran zu erinnern, dass es eine entsprechende Einstellungsmöglichkeit gab.
Allerdings bezweifle ich irgendwie, dass ihm Preferences helfen, wenn er auch Logdateien darüber ablegen will. Wobei ich generell eher zwischen Logdateien und Benutzereinstellungen unterscheiden würde: Logdateien in ein Verzeichnis im Anwendungs- oder Benutzerverzeichnis, Benutzereinstellungen dann in eine Konfigurationsdatei im Anwendungs- oder Benutzerverzeichnis oder über Preferences.
 

slawaweis

Bekanntes Mitglied
danke für die Antworten, aber ich weis schon genau wie ich es abspeichere, nämlich in stinknormalen Property-Dateien als Old-Plain-Text. Wieso sollte man es kompliziert machen, wenn es einfacher geht? Ich werde auch Logs und Einstellungen physisch trennen. Auch kann der Benutzer selber einstellen, wo seine Daten gespeichert werden, z.B. im Programmordner für den USB-Stick-Fall. Doch die Default-Einstellung ist "user.home". Dafür suche ich jetzt eine standardisierte Möglichkeit, die Daten richtig und artgerecht abzulegen. So eine Art Framework, welches mir sagt, wo ich meinen Root-Ordner in "user.home" platziere.

Slawa
 

Guybrush Threepwood

Top Contributor
Also unter Windows ist APPDATA\Programmname üblich und nicht user.home. Falls das Programm mit erhöhten Rechten läuft, wäre aber auch ALLUSERS ok. Leider gibt es diese Variablen nur unter Windows.
user.home\Programmname führt dazu, dass es direkt im Nutzerverzeichnis liegt, neben Bilder, Dokumenten ... Das ist echt hässlich.
Ich prüfe beim Programmstart, ob die Verzeichnisse beim Programmstart existieren und mache eine Weiche, z. B. so:
Java:
	private void configurePath() {
		String userDirectory = getUserDir();

		if (!(new File(userDirectory).exists())) {
			(new File(userDirectory)).mkdir();
		}

	try {
			fileErrorStream = new FileOutputStream(userDirectory
					+ File.separator + "error.log", true);
			errorStream = new PrintStream(fileErrorStream);
			System.setErr(errorStream);
		} catch (FileNotFoundException e) {

		}

	}

Java:
	public static String getUserDir() {
			String userdir = System.getProperty("user.home") + File.separator
					+ NAME;
			if (System.getProperty("os.name").toLowerCase().indexOf("win") > -1)
				userdir = System.getenv("APPDATA") + File.separator + NAME;
		return userdir;
	}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
OnDemand Zugangsdaten externer Systeme sicher speichern Allgemeine Java-Themen 8
Z Passwort Versuche speichern Allgemeine Java-Themen 8
M Eigene Datenstruktur um eine Menge zu speichern Allgemeine Java-Themen 3
8u3631984 Bilder in Datenbank speichern - sinnvoll Allgemeine Java-Themen 5
melaniemueller Einzelne Zeile aus einer txt Datei in einem String speichern Allgemeine Java-Themen 12
I Hibernate Envers - Aufruf der Methode zum Speichern selbst ausführen oder managen? Allgemeine Java-Themen 0
killig Textdatei einlesen und in HashMap speichern (duplikate entfernen) Allgemeine Java-Themen 12
J (Geplante) Änderungen an einer Datei vorübergehend speichern und anwenden? Allgemeine Java-Themen 12
N zweidimensionalen Array in dreidimensionalen Array speichern Allgemeine Java-Themen 4
temi Lösung zum Speichern von Deltafiles Allgemeine Java-Themen 6
J Java Filechooser Speichern Allgemeine Java-Themen 8
N Arrayliste in eine Datei speichern Allgemeine Java-Themen 4
H Elemente aus ArrayList in Array speichern Allgemeine Java-Themen 8
platofan23 Wie .txtDatei im Java Eclipse-Projekt bzw. in der Jar speichern? Allgemeine Java-Themen 7
MiMa Werte in liste speichern? Allgemeine Java-Themen 3
S Swing Speichern nach Button-Klick Allgemeine Java-Themen 5
H ArrayListe in CSV Datei speichern Allgemeine Java-Themen 6
H Mehrere Datentypen in einer Arraylist speichern Allgemeine Java-Themen 9
H Objekte speichern und laden Allgemeine Java-Themen 10
H Objekte speichern und laden Allgemeine Java-Themen 1
H Objekt speichern und laden Allgemeine Java-Themen 1
H Objekt speichern und laden Allgemeine Java-Themen 1
T Speichern von Objekten Allgemeine Java-Themen 2
M Schnelleres Speichern von XML-Daten über URLConnection Allgemeine Java-Themen 4
D .txt Datei in .jar Datei speichern Allgemeine Java-Themen 3
M Key-File im selben Ordner speichern? Allgemeine Java-Themen 18
J int Werte in einer anderen Klasse in Arrays speichern Allgemeine Java-Themen 3
Aruetiise Funktion(y = mx+n) in String speichern und berechnen Allgemeine Java-Themen 9
S Eindimensionales Array in zweidimensionales Array speichern Allgemeine Java-Themen 5
offi Excel mit Inhalten aus DB öffnen ohne zu speichern Allgemeine Java-Themen 8
MiMa Speichern von Programmeinstellungen in Datei Allgemeine Java-Themen 7
F Best Practice Große Anzahl an Objekten speichern und lesen Allgemeine Java-Themen 19
B Von String zu <Objekt> ||Speichern/Laden Allgemeine Java-Themen 17
Arif Input/Output Dateien im Jar-Programm speichern Allgemeine Java-Themen 12
Q-bert Strings aus der JList in eine Datenbank speichern Allgemeine Java-Themen 1
L CSV File lesen, in ArrayList speichern und ausgeben Allgemeine Java-Themen 3
Q-bert Daten von Java Programm speichern Allgemeine Java-Themen 4
@SupressWarnings() Feste Kosten speichern Allgemeine Java-Themen 4
N ZIp datei direkt im eclipse speichern Allgemeine Java-Themen 4
N Das Ende von bestimmten zeilen in text datei ändern und speichern Allgemeine Java-Themen 3
C Best Practice Speichern kleineren Mengen Stammdaten? Allgemeine Java-Themen 3
X Mehrere booleans in Datei Speichern, Updaten und Laden Allgemeine Java-Themen 1
F Json in sql speichern und lesen Allgemeine Java-Themen 10
F Alte Passörter mit Gson und Json in SQL speichern? Allgemeine Java-Themen 5
K API-Key sicher speichern Allgemeine Java-Themen 2
K Große Mengen an Daten speichern Allgemeine Java-Themen 9
B Zahlen manuell eingeben und in Array Speichern Allgemeine Java-Themen 2
K Input/Output String aus einer Datei einlesen und in anderer Datei speichern Allgemeine Java-Themen 20
Tacofan Bilder in Resource speichern Allgemeine Java-Themen 6
C Objekte in Array List speichern? Allgemeine Java-Themen 1
OnDemand Objekte speichern Allgemeine Java-Themen 8
O Klassen Bruch im gleichen Objekt Speichern Allgemeine Java-Themen 1
J Text lesen und in Variablen speichern Allgemeine Java-Themen 3
U Variablen Stringarrays mit wenig verschiedenen Zeichen effizienter speichern Allgemeine Java-Themen 10
HarleyDavidson Input/Output Heruntergeladene Datei direkt nach dem Download öffnen ohne zu speichern Allgemeine Java-Themen 1
J Daten persistent speichern Allgemeine Java-Themen 14
S JavaMail - MailSubject,MailFrom,MailDate in String Array speichern NullPointerException Allgemeine Java-Themen 2
M Objekt serialisieren/deserialisieren und in einer SQLite-Datenbank speichern Allgemeine Java-Themen 3
R HtmlUnit: Canvas als Bild speichern Allgemeine Java-Themen 0
E KeyCode in anderer Klasse speichern Allgemeine Java-Themen 2
M YouTube-Video herunterladen und speichern Allgemeine Java-Themen 10
C Position speichern von verschiebbaren Elementen auf JPanel Allgemeine Java-Themen 3
S Wertepaar in LinkedList/PriorityQueue speichern Allgemeine Java-Themen 3
Developer_X Input/Output Serialisiertes Objekt speichern und laden Allgemeine Java-Themen 1
J Arraylist speichern und laden? Allgemeine Java-Themen 5
S speichern von RSA-Keys Allgemeine Java-Themen 1
3 OOP Instanzen aus einer Klasse persistent speichern. Allgemeine Java-Themen 9
GUI-Programmer Mp3 Dateien bearbeiten und speichern Allgemeine Java-Themen 3
G Suchweg durch Binärbaum speichern Allgemeine Java-Themen 4
D IP-Cam live stream speichern Allgemeine Java-Themen 9
javampir Lange Bitfolge speichern Allgemeine Java-Themen 3
M Methoden in Rescources speichern Allgemeine Java-Themen 4
L iText PDF-Generierung ohne Speichern Allgemeine Java-Themen 10
U Screenshot erstellen und speichern Allgemeine Java-Themen 6
OnDemand Input/Output Variablen in Datei Speichern um sie wieder auszulesen Allgemeine Java-Themen 4
M Werte aus DB in Liste speichern ohne mehrfach speicherung Allgemeine Java-Themen 18
S XML lesen, verarbeiten, speichern klappt in Eclipse, aber nicht in der JAR Allgemeine Java-Themen 4
H JPA (EclipseLink) Neuer Eintrag in Collection speichern (unidirektional) Allgemeine Java-Themen 3
J RC4 Key als String speichern? Allgemeine Java-Themen 5
F Java Api Bilder speichern Allgemeine Java-Themen 3
T UTF-16LE String aus LDAP lesen und als ISO-8859-1 in DB speichern? Allgemeine Java-Themen 2
M Einstellungen in JAR speichern Allgemeine Java-Themen 8
F Problem beim Speichern eines Attachments Allgemeine Java-Themen 3
K Input/Output Daten speichern / laden Allgemeine Java-Themen 2
M Best Practice: Daten aufnehmen-speichern-bereitstellen Allgemeine Java-Themen 8
D Variablen zur Laufzeit global speichern (Registry Pattern?) Allgemeine Java-Themen 6
B Effizienteres Speichern von Worten Allgemeine Java-Themen 4
Z Design um boolsche ausdrücke zu speichern & auszuwerten Allgemeine Java-Themen 3
M Instanzierte Objekte in XML Dokument speichern Allgemeine Java-Themen 3
S Speichern/Laden/Hinzufügen/Löschen der Array-Wörter; unerwartete Ausgabe Allgemeine Java-Themen 6
M Aus Excel Tabelle lesen und Werte in Array speichern Allgemeine Java-Themen 15
H Eclipse x Stellen einer Zahl in array speichern Allgemeine Java-Themen 3
P Objekt Array in Datei Speichern Allgemeine Java-Themen 3
DStrohma Passwort in Datei speichern - wie? Allgemeine Java-Themen 31
K Input/Output Im Programm instanzierte Objekte Speichern und laden Allgemeine Java-Themen 3
H Objekte Serialisiert speichern Allgemeine Java-Themen 10
K Datei aus.jar extern speichern Allgemeine Java-Themen 10
C JasperReports, PDF und "Speichern unter"-Dialog Allgemeine Java-Themen 7
R Java Array speichern & laden Allgemeine Java-Themen 23
D System.out's in String speichern. Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben