Einstellungen speichern ohne eine Datei zu erstellen!

Status
Nicht offen für weitere Antworten.
Datei verwenden die vorher schon da ist, Datenbank ...

kA für was brauchste das bzw. was stellste dir vor?
 
möglichkeiten gibts da genügend...

e.g. einstellungen in registry speichern, vorausgesetzt man fährt mit windoof
oder
einstellungen in umgebungsvariable(n) speichern

...mehr fallen mir jetzt auch net ein.

btw: geht das mit java, auf die umgebungsvariablen einfluss zu nehmen, oder eine anzulegen, entfernen, etc... :?:
 
naja ich will es meinen eifrigen programm-usern ermöglichen ihre einstellungen zu speichern ohne vorher den ort festlegen zu müssen wo das gespeichert werden soll... und sie sollen auch nicht immer die datei(en) mit den einstellungen mitschleppen müssen. Zu dem Programm für das ich das brauche gibts keinen Installer, kann man viielicht eine datei ins jar-archiv speichern?

mit setRessource oder so...
zb.: programm.class.setResource("datei.txt");
 
Nö, kannst nicht ins Jar schreiben das gerade ausgeführt wird.

Warum machste net einfach im selben Ordner wo dein jar lieg n Ordner ("Settings" z. B.) und speicherst da alles rein? Wenn deine User dein Programm auf der Platte duch die gegen ziehen müssen, dann isses ihnen auch zuzumuten, dass sie den Ordner mit den Settings mitumziehen.

Kannst ja evtl. noch so ne Anmerkung in der ReadMe mit reinbauen, wenns unbedingt sein muss.
 
voll blöd, java kann eigentlich alles nur sowas nicht? bin jetzt voll gefrustet -.-

werd ich wohl nen installer machen, wie macht man denn i java ne verknüpfung von einer datei?
 
Tjo, ist zwar bisi "blöde" Lösung, aber so würds gehn!

Du erstellt das Speicherungsfile in das tmp Verzeichnis (zu holen via System.getProperty), da sollte jeder Schreibrechte haben!

Dort speichert du deine Settings ab und extrahierst dein "mini updater programm" auch dorthin (diese muss als jar Archiv in deinem Archiv vorliegen"

Dann addest du via Runtime.getRuntime().addShutdownThread (oder so, schau in der Api) den Befehl

java -jar pfad/zu/tmp/miniupdater.jar

Dieser wartet zB 1 - 2sekunden und speichert die Einstellung dann in das (bis dahin schon geschlossene jar file) Hauptprogramm - jar File!

Es geht halt net, wenn der Typ einfach den Stecker rauszieht!


@Hackl: Wo gibt es bitte eine setResource Methode??

Man muss das via Jar/ZipEntry etc. einfügen!

Also so ne Methode kenn ich net mal!
 
öhm, schonmal versucht ne Datei zu verändern die du selber gerade verwendest? Das kannste knicken dass das irgendwo geht. Kannst ja auch net IN Windows Windows löschen ...

Du kannst höchstens noch eine jar erstellen, die dann wenn gespeichert werden soll ausgeführt wird, das eigentliche Programm beendet, ein neues jar mit den neuen Settings und dem Hauptprogramm erstellen, dieses starten und das Hilfsprogramm beenden :autsch: .

kA wie das geht, denke mal dass Verknüpfungen Plattformabhängig sind (mit JNI dürftes aber auf jedenfall gehen), kanns jetzt aber nicht 100pro sagen.
 
@Hobbit: das habe ich ja beschrieben 😉

Und in Linux gehts 😉

In LInux kann man die ausführende jar datei löschen 🙂
 
Alleine bei der Fragestellung kräuseln sich mir die Nackenhaare. Kann ich mir ein Schnitzel braten, ohne dass ein Schwein sterben muss?

Das manch einer hier von Java nicht viel Kenne hat ist klar, jeder fängt mal an. Aber wie will man lernen zu programmieren, wenn man kaum nen Dunst hat, wie ein Computer funktioniert?

Wenn es tatsächlich gelingt diese Daten zu speichern, ohne sie in einer Datei abzulegen, reiße ich sofort meine Festplatte aus dem Notebook und installiere mein Windows auf meinem brandneuen null-Drive...

SCNR
 
AlArenal hat gesagt.:
Wenn es tatsächlich gelingt diese Daten zu speichern, ohne sie in einer Datei abzulegen, reiße ich sofort meine Festplatte aus dem Notebook und installiere mein Windows auf meinem brandneuen null-Drive...

Man könnte die Daten z.B. auf ein FPGA direkt in den Logikgattern ablegen (z.B. den hier)...

Schick mir doch bitte den Lesekopf Deiner Festplatte als Beweis, dass Du Wort gehalten hast. :bae:
 
Hobbit_Im_Blutrausch hat gesagt.:
öhm, schonmal versucht ne Datei zu verändern die du selber gerade verwendest? Das kannste knicken dass das irgendwo geht.
Ja, sogar erfolgreich. Zwar nicht mit Java, aber prinzipiell geht es.
 
Hackl hat gesagt.:
voll blöd, java kann eigentlich alles nur sowas nicht? bin jetzt voll gefrustet -.-
werd ich wohl nen installer machen, wie macht man denn i java ne verknüpfung von einer datei?

:shock: Und was bitte bringt dir dann der Installer? :shock:

Nachdem der das Programm installiert hat und der user seine eigenen, persönlichen
Einstellungen verändert hat, kann er das Programm mit neuen Einstellungen doch auch nicht
einfach irgendwohin mitnehmen; der Installer wird dadurch doch nicht verändert?

Wenn der user sein Programm mit aktuellen Einstellungen leicht, auch plattformunabhängig,
transportieren will, gibt es IMHO keine bessere Lösung als die, die Hobbit vorgeschlagen hat;
einfach den Ordner mit der Konfigurationsdatei kopieren. Dein Programm schaut beim
Start zuerst nach ob es diese Datei im aktuellen Ordner schon gibt. Wenn nicht, dann kopiert
es einfach eine Default-Datei aus dem Jar-File und ruft sein eigenes main() noch einmal auf 😎

Informationen in einer Registry zu speichern, wäre da nur hinderlich.
AlArenal hat gesagt.:
Alleine bei der Fragestellung kräuseln sich mir die Nackenhaare...
:applaus: Besser hätt' ichs auch nicht formulieren können.

Aber ich habe nunmal Donnerstags immer meinen feinen, englischen, höflich zurückhaltenden Stil 😎
 
Hobbit_Im_Blutrausch hat gesagt.:
Jockel hat gesagt.:
Hobbit_Im_Blutrausch hat gesagt.:
öhm, schonmal versucht ne Datei zu verändern die du selber gerade verwendest? Das kannste knicken dass das irgendwo geht.
Ja, sogar erfolgreich. Zwar nicht mit Java, aber prinzipiell geht es.

Wie jetzt? Das wiederspricht doch jeglicher Logik ... :autsch:

Nö, Du hast Dich nur unklar ausgedrückt. 😉 Es kommt schlichtweg darauf an, ob die Datei gelockt ist oder nicht. Öffne mal unter Windows ne Textdatei mit Notepad und lösche die Datei dann.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben