Java Programm soll Datei in eigene jar schreiben

N

NichtSchlau

Mitglied
Das Programm, welches ich gerade schreibe, soll sich sich Einstellungen des Nutzers merken.

Am praktischsten wäre es, wenn es die Einstellungen sich direkt in die executable Jar, von der das Programm auch gestartet wird, als Datei schriebe.
Das sich also im Archiv nicht nur die Klassen befinden sondern auch Konfigurationsdateien.

(Dadurch wäre es immer nur ein Archiv, das praktisch, portabel wäre)

Ist das möglich?


MfG
 
L-ectron-X

L-ectron-X

Gesperrter Benutzer
Nein. Du kannst nicht in das gerade ausgeführte Jar-File schreiben.
Um Einstellungen auf dem System zu speichern nutzt man am besten Properties-Files oder den Java Preference Store.
 
S

Spacerat

Gast
Ich glaub' kaum. Denn während das Archiv ausgeführt wird ist es sicher vom Dateisystem zum Lesen geöffnet und kann deswegen nicht erneut zum Schreiben geöffnet werden.
Ausserdem ist es auch nicht sehr zu empfehlen während seiner Ausführung das Archiv mit der gesammten Anwendung zu verändern denn wenn dabei was schief geht ist die Anwendung dahin. Allgemeine Practice ist es im Archiv Standardeinstellungen zu platzieren, die geladen werden wenn im Userverzeichnis keine individuelle Einstellungsdatei gefunden wurde.
 
N

NichtSchlau

Mitglied
Vielen Dank euch beiden.

Preference Store.



So werde ich es mal machen.


Ich hätte noch eine Frage wegen (J)MenuBar, die es nicht wert ist extra ein neues Thema zu eröffnen.

Ist es nach neustem standard jedem MenuItem eines Menus einer MenuBar, seinen eigenen ActionListener zu geben?
Das ergibt ernorm viel Code, weswegen ich es mit einem ActionListener gemacht habe, der switch hat und damit die entsprechenden Aktionen durchführt.

Oder gibt es einen besseren Weg?

MfG
 
Zuletzt bearbeitet:
S

Spacerat

Gast
Ich glaub' ich würd's auch nur mit einem ActionListener machen jedoch nicht unbedingt mit switch. Ich würde die Switchanweisung hübsch in if, else if und else Blöcke auscoden.
 
Zuletzt bearbeitet von einem Moderator:
N

NichtSchlau

Mitglied
Ich glaub' ich würd's auch nur mit einem ActionListeber machen jedoch nicht unbedingt mit switch. Ich würde die Switchanweisung hübsch in if, else if und else Blöcke auscoden.

Und wie machst du es dann?

Gibt es sowas wie "alleElementedesDatenTyps(JMenuItem)".addActionlistener(InstanzmeinesActionListeners)



Immomment mache ich es via

Java:
EinJMenuItem.addActionListener(MeinAcc);
ZweitesJMenuITem.addActionListener(MeinAcc);
DrittesJMenuITem.addActionListener(MeinAcc);


Das kommt aber auf enorm viel Code, den ich gerne vermeiden würde.



MfG
 
S

Spacerat

Gast
Ja nee... das mach' ich auch so. Geht ja auch nicht anders. Ich dachte du redest von der actionPerformed-Methode... naja der Mensch denkt, Gott lenkt... der Mensch dachte, Gott lachte...
Vllt. gibt es aber noch einen Weg über 'ne Collection, indem man alle Items, Buttons usw. in einer solchen hält und dann, während man darüber iteriert die ALs dranhängt. Alledings wird der Code dadurch auch nicht viel kürzer, weil man schlicht [c]item.addActionListener()[/c] durch [c]<Collection> items.add(item)[/c] ersetzt.
 
N

NichtSchlau

Mitglied
Verwende direkt Actions anstatt MenuItems:
JMenu (Java Platform SE 6)

Ok, die Vorteile habe ich beim durchlesen kapiert, aber die Anwendung nicht so wirklich.

Soweit wie ich die Texte verstanden habe, muss ich daher dann für jedes einzelne MenuItem noch seine eigene Klasse erstellen?

Java:
public MenüObjekt1 extends JMenuItem implements Action
{
    public Object getValue(String key) {
        //das was für MenüObjekt1 ist
    }

    public void putValue(String key, Object value) {
         //das was für MenüObjekt1 ist
    }

    public void actionPerformed(ActionEvent e) {
         //das was für MenüObjekt1 ist
    }
}

Will heißen, wenn ich 20 JMenuItems habe, muss ich mir 20 Klassen erstellen die Action implementieren um da die entsprechenden anweißungen rein zu schreiben?


Oder wie mache ich das am kürzesten sinnvoll mit Action

Ich kapier das Anwenden grad gar nicht, hab mir Action (Java Platform SE 6) komplett durchgelesen..

Kurzes beispeil von nem menü mit Actions, das die Vorzüge von Action nutzt, wäre toll

(hab keines mit Action bei Google gefunden)

Edit: Mir ist Action zu komplex. SUN schreibt extra das es auch lahmer macht, drum nehme ich lieber nen normalen Listener, trotzdem Danke.

MfG
 
Zuletzt bearbeitet:
Wildcard

Wildcard

Top Contributor
Nimm die AbstractAction, dort sind die ganzen Methoden schon implementiert. Actions haben den Vorteil das sie wiederverwendbar sind. Du definierst die Action ein mal und kannst sie an mehreren Stellen verwenden. Du kannst natürlich auch anonyme innere Klassen dafür verwenden, das relativiert den Vorteil von Actions allerdings erheblich.
 
N

NichtSchlau

Mitglied
Nimm die AbstractAction, dort sind die ganzen Methoden schon implementiert. Actions haben den Vorteil das sie wiederverwendbar sind. Du definierst die Action ein mal und kannst sie an mehreren Stellen verwenden. Du kannst natürlich auch anonyme innere Klassen dafür verwenden, das relativiert den Vorteil von Actions allerdings erheblich.

Bedeutet aber trotzdem, dass ich für jeden einzelnes MenüObjekt eine Klasse von dem Abstract ActionListener ableiten muss??

Dazu hätte ich auch gleich noch ne Frage.

Werden beim Ausführen eines Javaprogrammes, alle Klassen in den Arbeitsspeicher geladen, oder liest das JRE wenn es eine Instanz erstellen soll jedes mal die Klasse auf der Festplatte nach?

MfG
 
Wildcard

Wildcard

Top Contributor
Pro Classloader wird eine Klasse nur einmal geladen und zwar genau dann wenn sie zum ersten mal verwendet wird. Und keinesfalls solltest du aus falsch verstandener Optimierungswut versuchten möglichst wenige Klassen zu schreiben.
 
N

NichtSchlau

Mitglied
Pro Classloader wird eine Klasse nur einmal geladen und zwar genau dann wenn sie zum ersten mal verwendet wird. Und keinesfalls solltest du aus falsch verstandener Optimierungswut versuchten möglichst wenige Klassen zu schreiben.

NichtSchlau hat gesagt.:
Bedeutet aber trotzdem, dass ich für jeden einzelnes MenüObjekt eine Klasse von dem Abstract ActionListener ableiten muss??

Ähm bin ich zu doof oder habe ich dazu jetzt die Antwort übersehen?

Ich verstehe nicht wie ich Action anwenden soll.


MfG
 
Wildcard

Wildcard

Top Contributor
Ob nun Action, AbstractAction, oder ActionListener. Eine Klasse brauchst du immer. Ob du nun n Klassen brauchst, oder eine instanz einer Klasse die viele Actions handelt, oder n Instanzen einer Klasse die jeweils eine Action handlen liegt bei dir.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
TimoN11 Mail Programm mit Java? Java Basics - Anfänger-Themen 1
C Was ist nötig für ein Java-Programm auf Server für Website Java Basics - Anfänger-Themen 18
justemii Gehalt berechnen - Aufgabe Java-Programm Java Basics - Anfänger-Themen 9
N Best Practice How can I creat a programm with java under windows 10 in order to open an spreadsheet in libreoffice calc format Java Basics - Anfänger-Themen 11
P Wie für EIN Java Programm von 64bit Java (=Standard) auf 32bit Java Installation (Windows) umschalten? Java Basics - Anfänger-Themen 6
X Kurzes Java-Programm, das sich komisch verhält Java Basics - Anfänger-Themen 6
G Java-Programm Terminal Java Basics - Anfänger-Themen 2
Dimax Java Programm mit exec starten Java Basics - Anfänger-Themen 5
I Java Programm sieht wie exe aus. Java Basics - Anfänger-Themen 3
G Java-Programm weitergeben Java Basics - Anfänger-Themen 14
A Java-Programm läuft bei installierter JDK aber nicht mit JRE? Java Basics - Anfänger-Themen 5
W Java Programm mit API Anbindung Java Basics - Anfänger-Themen 2
D Java Programm mit JavaScript einbinden Java Basics - Anfänger-Themen 8
X Java Programm MacOS Java Basics - Anfänger-Themen 1
F Java Programm schließen Java Basics - Anfänger-Themen 1
M Java Methode editierbar machen im Programm Java Basics - Anfänger-Themen 62
B Mit Java anderes Java Programm starten Java Basics - Anfänger-Themen 3
J Java Programm Java Basics - Anfänger-Themen 29
B Java Eclipse Programm in einer Batch ausführen Java Basics - Anfänger-Themen 3
L Java Programm zum Auswerten von Daten Java Basics - Anfänger-Themen 11
S Bestehendes Java Programm, einen festen Wert ändern Java Basics - Anfänger-Themen 17
L Java Zip-Programm Java Basics - Anfänger-Themen 16
C Input/Output Textdatei vom Java-Programm nicht geladen Java Basics - Anfänger-Themen 58
M Java Programm über Batch-Datei ausführen Java Basics - Anfänger-Themen 1
B Brauch Hilfe für Java Programm Java Basics - Anfänger-Themen 12
T CMD über Java-Programm aufrufen Java Basics - Anfänger-Themen 2
L Java-Programm kompilieren Java Basics - Anfänger-Themen 24
D Java BlueJ Programm wiederholen? Java Basics - Anfänger-Themen 6
M Java Programm: Lottozahlen Java Basics - Anfänger-Themen 4
I Java Programm Java Basics - Anfänger-Themen 12
F Java Programm öffnen Java Basics - Anfänger-Themen 3
A Erste Schritte Programm in Shell mit bestimmter Java-Version aufrufen Java Basics - Anfänger-Themen 10
J Pdf-Dokument im Java-Programm öffnen Java Basics - Anfänger-Themen 3
M Chat Programm in Java Java Basics - Anfänger-Themen 1
M Wie sicher sind Daten im Java Programm? Java Basics - Anfänger-Themen 9
M Mein erstes Java Programm Java Basics - Anfänger-Themen 5
L Herunterladbares Java Programm in bestimmten Ordner speicher Java Basics - Anfänger-Themen 3
L Konsole öffnen und Java Programm darin ausführen Java Basics - Anfänger-Themen 4
C Programm JAR startet nicht - Could not create the Java Virtual Machine Java Basics - Anfänger-Themen 4
T CMD mit Java Programm öffnen? Java Basics - Anfänger-Themen 5
B Java Programm ohne statische Main Methode aufrufen Java Basics - Anfänger-Themen 5
G Input/Output CSV-Datei über Java-Programm erstellen, Zeichensalat Java Basics - Anfänger-Themen 3
F Java-Programm gibt in Eingabeaufforderung nichts aus Java Basics - Anfänger-Themen 4
M Erste Schritte Java programm unable to access Java Basics - Anfänger-Themen 10
? Klassen einfacher Fehler in einem Java Programm. Java Basics - Anfänger-Themen 5
? Methoden Fehler in einfachem Java Programm. Java Basics - Anfänger-Themen 9
T Selbst erstellten Dateityp mit java Programm assoziieren? Java Basics - Anfänger-Themen 4
S Programm wie Java? Java Basics - Anfänger-Themen 10
M C++ programm (kompiliertes) aus java aufrufen Java Basics - Anfänger-Themen 7
A Eclipse - Java-Programm exportieren für Ubuntu TLS 10 Java Basics - Anfänger-Themen 9
F Java-Programm aus CMD ausführen mit Parametern Java Basics - Anfänger-Themen 7
N Java Programm zum Suchen und Ersetzen von Text Dateien Java Basics - Anfänger-Themen 10
P Probleme Java Programm Java Basics - Anfänger-Themen 6
M Lauffähiges Java Programm erstellen Java Basics - Anfänger-Themen 4
J C++ Bitmanipulations-Programm in Java umwandeln Java Basics - Anfänger-Themen 10
N Java Programm im CMD Fenster öffnen, wie? Java Basics - Anfänger-Themen 17
S Externes Java Programm starten Java Basics - Anfänger-Themen 9
D Java Programm auf Kommandozeile durchführen Java Basics - Anfänger-Themen 12
H Ich kann mein Java Programm Test.class nicht ausführen Java Basics - Anfänger-Themen 6
M Kann Java Programm nicht starten Java Basics - Anfänger-Themen 7
V Java Chat Programm Problem mit IP Addresse Java Basics - Anfänger-Themen 7
S Hilfe zu Java-Programm und JUnit Test!! Java Basics - Anfänger-Themen 5
B Mit Java-Programm Daten aus MySQL-Datenbank auslesen, lokal und nicht lokal. Java Basics - Anfänger-Themen 10
P Java Programm in Powerpoint Java Basics - Anfänger-Themen 5
Y Java Programm URL und String Vergleich! Java Basics - Anfänger-Themen 4
U Java-Programm auf einem Server starten Java Basics - Anfänger-Themen 33
M Kann mein Java Programm nicht starten Java Basics - Anfänger-Themen 6
G Kleine Java Programme aus Main Java Programm starten..... Java Basics - Anfänger-Themen 3
P Java Programm von außen aufrufen Java Basics - Anfänger-Themen 8
D Java programm durch vorgegebene bat ausführen Java Basics - Anfänger-Themen 3
Crashbreaker Eigene Java-Programm ohne hilfe des CMD starten Java Basics - Anfänger-Themen 11
S Interpreter-Fehler Java - Programm ausführen! Java Basics - Anfänger-Themen 12
B Grafische Oberfläche für Java-Programm Java Basics - Anfänger-Themen 5
T Mac OSX - Programm aus Java öffnen Java Basics - Anfänger-Themen 3
H Wie kann ich offline ein Java Programm abspeichern Java Basics - Anfänger-Themen 14
U Visual-Basic Programm mit Java steuern Java Basics - Anfänger-Themen 8
K In MySQL Select Variablen aus Java Programm benutzen Java Basics - Anfänger-Themen 8
J Java-Programm starten Java Basics - Anfänger-Themen 6
C java programm mit Texten, speichern und so Java Basics - Anfänger-Themen 3
W Java-Programm als Icon mit Doppelklick einfach öffnen ? Java Basics - Anfänger-Themen 3
B Java-Programm-Dienst sauber beenden Java Basics - Anfänger-Themen 6
P Java Programm geschrieben ... und nun? Java Basics - Anfänger-Themen 11
W Java Programm abändern Java Basics - Anfänger-Themen 6
K Programm zum Kompilieren von java-Dateien Java Basics - Anfänger-Themen 17
M Java-Programm wird beendet, wenn ich Spiel öffne... Java Basics - Anfänger-Themen 11
J Wie java programm noch schneller machen? Java Basics - Anfänger-Themen 30
T Zugangsdaten für Datenbank in Java-Programm speichern? Java Basics - Anfänger-Themen 5
H java programm per batch datei öffnen Java Basics - Anfänger-Themen 4
R Java als externes Programm speichern Java Basics - Anfänger-Themen 3
I Java Programm unter Linux ausführen Java Basics - Anfänger-Themen 2
L Java-Programm neustarten lassen Java Basics - Anfänger-Themen 14
N Normales Java Programm in Applet umwandeln Java Basics - Anfänger-Themen 17
S Hausaufgabe: Java-Programm schreiben zur Berechnung von x und y Java Basics - Anfänger-Themen 9
C Java programm mit Datenbank für Anfänger Java Basics - Anfänger-Themen 21
E Java als eigenständiges Programm Java Basics - Anfänger-Themen 2
StrikeTom Java programm ausführen Java Basics - Anfänger-Themen 35
N Java programm in website einfügen Java Basics - Anfänger-Themen 2
L Datei aus Java in anderem Programm öffnen Java Basics - Anfänger-Themen 23
J Webserver für Java Programm Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Anzeige

Neue Themen


Oben