Geeigneten Speicherort finden ?

dehlen

Bekanntes Mitglied
Hey habe eine kleine Frage zum Speichern von Files. In einer Anwendung von mir speichere ich Highscore und ein paar Einstellungen in zwei Textdateien. Diese werden beim Start der jar direkt im gleichen Verzeichnis wie die jar erstellt. Ich würde sie aber gerne wo anders erstellen.
Nun gibt es ja die Möglichkeit mit Properties das im Home Verzeichnis zu speichern, doch dort finde ich es Auch eher störend. Dann gibts noch die Möglichkeit einen eigenen Pfad anzugeben, aber dann ist es nicht mehr plattformunabhängig. Dann kann ich noch Abfragen auf welchem Os das Programm gestartet wurde und danach die Pfade wählen aber da ich es am liebsten in Windows im Programme Ordner hätte geht das auch nicht, da nicht jeder seine Programme auf C: hat. Ansonsten würde diese Methode für mich passen. Also gibts da noch irgendeine bessere Lösung oder muss ich dann damit leben das es dann z.B im Home Ordner verweilt ?

Gruß dehlen
 
G

Gast2

Gast
ich würde mir einen versteckten ordner im home directory erstellen (z.b. ".deineApp"). In dem Ordner könntest du dann deine zwei files ablegen. Das ist dann auch Plattformunabhängig :)
 

hdi

Top Contributor
Bester Speicherort für sowas ist imho das User Home Directory:
Code:
System.getProperty("user.home");

Das hat den Vorteil dass verschiedene User auf dem System spielen können und jeder wird seinen eigenen Speicherstand haben, ohne dass du im Programm ein User Management einführen musst.

edit: Note to self: Erst lesen, dann schreiben. :oops:
 

noobadix

Bekanntes Mitglied
Hi,

die Variante "home-Verzeichnis" hat doch den Nachteil, dass man einen Deinstaller braucht, um so ein java-Programm zu entfernen. Für meine Zwecke bleibe ich dabei, alle Dateien im jar-Ordner zu halten.
 

hdi

Top Contributor
Stimmt schon, der User müsste die Überbleibsel aus dem Home Verzeichnis per Hand löschen. Das Problem bei deinem Ansatz ist allerdings (abgesehen davon dass User X eben Zugriff auf die Daten von User Y hätte), dass der User nicht einfach die JAR verschieben kann. Er müsste den ganzen Ordner nehmen. Und wenn er's nicht tut und das ein paar mal rumschiebt hast du am Ende trotzdem noch an diversen Stellen irgendwelche toten Files rumliegen.

Ich würde beim Home Verzeichnis bleiben und beim erstmaligen Programmstart einen Dialog anzeigen:
"Dieses Programm legt Dateien im Ordner xxx an. Sollten sie das Programm nicht mehr verwenden wollen, sollten Sie diese Dateien löschen".
 

dehlen

Bekanntes Mitglied
Ok ich habe es nun so gemacht das ich den Ordner im HomeVerzeichnis ablege... er erstellt einen Order der so aussieht: .Name. Also mit dem Punkt davor, sodass er in Linux und Mac nicht zu sehen ist. Dann überprüfe ich den os.name. Wenn das mit Windows beginnt führe ich zusätzlich diese Methode aus:
Java:
public static void hideFileOrFolder(File file){ 

		try{ 
		Runtime.getRuntime().exec("attrib +a +s +h \""+file.getAbsolutePath().toString()+"\""); 
		}catch(Exception e){} 

		}

Wobei der übergebene File mein Ordner ist.
Sprich der Ordner ist auf allen Plattformen im Hom Verzeichnis aber versteckt. Dann gebe ich außerdem noch eine JOptionPane beim ersten Start aus, die dem User das sagt. Nun würde ich gerne noch ein Deinstallationsskript hinzufügen, nur für den Fall, dass der User "zu doof" ist die versteckte Datei zu löschen.

Also mache ich da für Windows einfach eine .bat und für Linux und Mac eine .sh ?
 
G

Gast2

Gast
Hm, werden nicht auch in Windows standardmäßig alle Dateien oder Ordner die mit nem Punkt beginnen ausgeblendet? Ich glaube die Methode kannst du dir sparen :)

EDIT:
Habs hier auf der Arbeit mal getestet, die werden leider nicht versteckt ;)

Also mache ich da für Windows einfach eine .bat und für Linux und Mac eine .sh ?
Ja.
 

dehlen

Bekanntes Mitglied
Ok für Linux und Mac habe ich nun folgendes:
Java:
echo JEscape wird gelöscht....
rm -R -f ~/.JEscape
find ${PWD} -name "JEscape.jar" -exec rm -R -f {} \;
echo Dateien wurden gelöscht.

Da die JEscape.jar ja überall liegen kann, suche ich nach dieser .jar und lösche sie dann. Das gleiche mache ich auch mit dem Ordner der die Einstellungsdateien birgt, nur zur Sicherheit.

Nun ja aber mit Batch habe ich so meine Probleme... ;)
Hab eigentlich noch nie mit Batch was gemacht... kann man das genauso nur für Batch realisieren ?
Danke!

EDIT: Gerade gemerkt das es nur auf Mac geht... ok dann brauche ich wohl noch eine Windows und eine Linux Lösung -.-

EDIT2: Habs für Linux nun hinbekommen :
Code:
find ${PWD} -name "JEscape.jar" -print0 | xargs -0 rm {} .....
Also ich hoffe es findet sich noch jemand mit guten Batch Kenntnissen ? Wäre toll ;)
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
R speicherort Mac pfad angeben Java Basics - Anfänger-Themen 3
F speicherort stack oder heap Java Basics - Anfänger-Themen 1
S Datei-Speicherort von FileOutputStream Java Basics - Anfänger-Themen 4
L Speicherort auswahl Java Basics - Anfänger-Themen 4
T csv einlesen, nutzen einer direkten speicherort eingabe Java Basics - Anfänger-Themen 2
K FileWriter Speicherort Java Basics - Anfänger-Themen 7
L Speicherort einer Variable Java Basics - Anfänger-Themen 8
J Ähnlichen String in Liste finden Java Basics - Anfänger-Themen 6
B Alle Zahlen finden, die 3 bestimmte Ziffern enthalten? Java Basics - Anfänger-Themen 9
D Kleinste Zahl in Array finden die vorher noch errechnet werden müssen. Java Basics - Anfänger-Themen 4
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
J for Schleife kleinste Zufallszahl finden Java Basics - Anfänger-Themen 25
Substring in einem String finden Java Basics - Anfänger-Themen 13
B Den Dateipfad einer Java Datei durch Code in Selbiger finden? Java Basics - Anfänger-Themen 10
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
districon Java Nachhilfe - wo finden? Java Basics - Anfänger-Themen 9
sserio Rekursion größten Primfaktor finden funktioniert nicht Java Basics - Anfänger-Themen 8
P9cman Char Index rekursiv finden Java Basics - Anfänger-Themen 4
M Datums-Palindrome finden Java Basics - Anfänger-Themen 9
H Primzahlen finden - Zeit optimieren Java Basics - Anfänger-Themen 34
B in einem Array den nächstgelegenen Wert zu einem eingabewert finden Java Basics - Anfänger-Themen 8
B String - Wörter finden, welches Punkt und entsprechender Pre / Suffix hat? Java Basics - Anfänger-Themen 30
S Schwachstelle finden Java Basics - Anfänger-Themen 11
D kleinste Wurzel finden Java Basics - Anfänger-Themen 9
CptK Richtigen Pfad beim einlesen von Datei finden Java Basics - Anfänger-Themen 2
Devin Wo kann man einen Java Lehrplan finden? Java Basics - Anfänger-Themen 5
Y Wie kann ich ein Element in einer toString finden. Java Basics - Anfänger-Themen 2
V Beliebige Dreistellige Zahl Teiler finden Java Basics - Anfänger-Themen 4
J Lösungen zu einem Lückentext finden Java Basics - Anfänger-Themen 0
S Input/Output Reader/Writer finden file nicht Java Basics - Anfänger-Themen 3
S Streams - kleinstes Element finden Java Basics - Anfänger-Themen 4
L Koordinate mit meisten Überlappungen in 3D-Raum finden Java Basics - Anfänger-Themen 9
KogoroMori21 Größten gemeinsamen Teiler finden Java Basics - Anfänger-Themen 7
F Methoden Bitte Helft mir meinen Fehler zu finden. Möchte in diesem Bankenprogramm durch die Konsoleneingabe auswählen welches Konto reduziert und welches erhö Java Basics - Anfänger-Themen 17
Kirby.exe Fehlende Int Werte aus Array mit streams finden Java Basics - Anfänger-Themen 19
I Preis finden für ein Uber-App(?) Java Basics - Anfänger-Themen 3
D Binärbaum Blätter finden und Ausgeben Java Basics - Anfänger-Themen 22
L Classpath Alle Dateien im Classpath finden Java Basics - Anfänger-Themen 4
O Suchbaum Elternknoten finden Level eines Knoten bestimmen Java Basics - Anfänger-Themen 24
H pfad finden Java Basics - Anfänger-Themen 12
G Excle datei aus resources folder finden und lesen Java Basics - Anfänger-Themen 5
M Duplikate in Array finden... Java Basics - Anfänger-Themen 9
A Mit Rekursion Zufallszahlen erstellen und größte finden Java Basics - Anfänger-Themen 5
S Maxium aus einer File finden Java Basics - Anfänger-Themen 12
R HTTP-Links in Java Class finden Java Basics - Anfänger-Themen 3
S Substrings finden Java Basics - Anfänger-Themen 5
C Finden mehrerer Lösungen Java Basics - Anfänger-Themen 0
L Backupdateien finden Java Basics - Anfänger-Themen 8
D doc.seect jsouo bestimmtes class element finden Java Basics - Anfänger-Themen 1
N Anfang eine Array Schleife finden Java Basics - Anfänger-Themen 18
D Erste Schritte Aktivsten Zweistündigen Abschnitt finden Java Basics - Anfänger-Themen 35
I Richtige Java-Version finden? Java Basics - Anfänger-Themen 17
DaCrazyJavaExpert Alle Zahlenkombinationen aus 9 zahlen finden Java Basics - Anfänger-Themen 17
S Erste Schritte Zwischen zwei Punkten ein Minimumpkt./Maxima finden Java Basics - Anfänger-Themen 1
M Denn dichtesten Wert finden Java Basics - Anfänger-Themen 3
N Objekte in ArrayList finden Java Basics - Anfänger-Themen 10
D Die Zahl in der Mitte finden Java Basics - Anfänger-Themen 20
kilopack15 Größte zahl eines Arrays finden Java Basics - Anfänger-Themen 1
H Fehler finden Java Basics - Anfänger-Themen 5
R Best Practice Palindrom in einem Text finden Java Basics - Anfänger-Themen 18
M Kleinsten Index in Array finden Java Basics - Anfänger-Themen 6
S Objekt finden und benutzen Java Basics - Anfänger-Themen 3
C Lottospiel kann Fehler nicht finden Java Java Basics - Anfänger-Themen 6
F System kann die Datei nicht finden Java Basics - Anfänger-Themen 7
D Werte in eckige Klammern finden Java Basics - Anfänger-Themen 3
S Input/Output Buchstaben in Eingabe finden und ausgeben Java Basics - Anfänger-Themen 5
A regulären Ausdruck mit Hilfe der Klasse Scanner in einem String finden Java Basics - Anfänger-Themen 2
N Objekt in einer Liste finden? Java Basics - Anfänger-Themen 3
C Finden und verändern Java Basics - Anfänger-Themen 1
T Erste Schritte Elemente finden, deren Name erst "zusammengesetzt" wird Java Basics - Anfänger-Themen 8
A Max finden und umtauschen Java Basics - Anfänger-Themen 2
K String in String-Array finden Java Basics - Anfänger-Themen 7
S Baumstruktur: tiefsten Knoten finden Java Basics - Anfänger-Themen 3
D Ein Objekt in einem Baum finden und ausgeben. Java Basics - Anfänger-Themen 4
F Erste Schritte Hilfe beim Algorithmus finden Java Basics - Anfänger-Themen 8
D Zahl in einem String finden Java Basics - Anfänger-Themen 4
C Methoden Diagonalen am best. Punkt im zweidimensionales array finden Java Basics - Anfänger-Themen 3
A Compiler-Fehler Kann Fehler nicht finden Java Basics - Anfänger-Themen 2
R Fehler finden die 2. Java Basics - Anfänger-Themen 7
N Bug finden im Programm Java Basics - Anfänger-Themen 13
P letzte Datei finden Java Basics - Anfänger-Themen 18
M Zwei gleiche Eintraege in ArrayList finden Java Basics - Anfänger-Themen 15
J Inhalt in einem Text-File finden und in ein Array schreiben Java Basics - Anfänger-Themen 5
I String in .txt finden Java Basics - Anfänger-Themen 9
T Wörter mit @ als Zeichen finden Java Basics - Anfänger-Themen 13
J Methoden Kann Fehler nicht finden Java Basics - Anfänger-Themen 6
M Letztes Element im Array finden Java Basics - Anfänger-Themen 3
R Erste Schritte Minimum und Maximum in Array finden Java Basics - Anfänger-Themen 29
H Schnell HTML-Tags finden Java Basics - Anfänger-Themen 5
Kenan89 Wo sind die Java Standard Library Source Codes zu finden? Java Basics - Anfänger-Themen 5
R Rekursive Methode, Files finden Java Basics - Anfänger-Themen 2
S brauche hilfe beim fehler finden Java Basics - Anfänger-Themen 2
B Dokumentation in der jre-Library finden Java Basics - Anfänger-Themen 9
T Datentypen Knoten Großvater finden? Java Basics - Anfänger-Themen 12
A Fehler finden und Ausgabe Java Basics - Anfänger-Themen 14
P Key anhand von Value finden (Hashtable) Java Basics - Anfänger-Themen 3
Q ProcessBuilder kann datei nicht finden Java Basics - Anfänger-Themen 2
K taschenrechner - Fehler beim Kürzen eines Bruches finden Java Basics - Anfänger-Themen 20
S Richtige String-Variable finden Java Basics - Anfänger-Themen 3
C Fehler in Java-Code finden Java Basics - Anfänger-Themen 17

Ähnliche Java Themen

Neue Themen


Oben