Jar speichert änderung nicht

Ana

Mitglied
Hallo zusammen,

ich hoffe ihr könnt mir helfen.
Ich habe in Eclipse etwas programmiert, es funktionir alles os wie ich möchte. Nun habe ich es als jar exportiert und konnte es auch starten. Als ich dann es testen wollte, hinzufügen ändern löschen, funktionert auch alles. Wenn ich es dann schliesse und wieder öffne sind meine Änderungen nicht mehr vorhanden. Was habe ich falsch gemacht?

Bitte hilft mir.

Danke im voraus.

Ana
 
Zuletzt bearbeitet:

Paddelpirat

Bekanntes Mitglied
Welche Änderungen waren denn nicht mehr vorhanden? Und wie stellst du sicher, dass sich dein Programm die vorgenommenen Änderungen merkt?
 

Ana

Mitglied
Ja ich habe beispielsweis ein in einem Tree nodes gelöscht, nodes geändert oder nodes von einem file importiert.

Ja, wie stelle ich fest das meine Änderungen gespeichert werden, keine Ahnung. Frag ich mich jetzt auch. Wie mach man das?

Danke für die schnelle Antwort!
 
Zuletzt bearbeitet:

Paddelpirat

Bekanntes Mitglied
Also entweder du speicherst die Daten nach jeder Änderung, oder beim Schließen des Programms. Sprich, du musst die Daten, die in deinem Baum sind wieder in die Datei schreiben, aus der du sie Anfangs ausgelesen hast. Problematisch kann das ganze werden, wenn sich die Datei aus der du die Daten gelesen hast ebenfalls in dem jar-File befindet, weil du nicht einfach in deinem jar-File rum schreiben kannst. Die Datei sollte sich also außerhalb der jar befinden.
 

Ana

Mitglied
Also die daten importiere ich in einem tree von einem csv file welche sich in einem Ordner bei mir auf dem desktop befinden.Dann nehme ich die Änderungen vor.

Es würd es besser finden, wenn das alles gespeichert wird, wenn ich das Fenster schliesse. Weiss aber nicht wie ich das machen soll. Hats du eine Idee?

Ich habe folgendes gefunden, das man über einen Button speichern kann, habe es auch so mit einem Button probiert geht aber leider nicht.


Java:
else if(event.getSource().equals(m_savefile))
        {
            JFileChooser fco2 = new JFileChooser();

            try
            {
            	
               pem.saveToCSVFile(null);
            }
            catch(Exception ex2)
            {
                JOptionPane.showMessageDialog(mw, ex2.getMessage(), "Error saving File", JOptionPane.ERROR_MESSAGE);
            }
        }
 

Paddelpirat

Bekanntes Mitglied
Nun ja das Speichern musst du schon selber vornehmen. D.h. du musst für den Baum in deiner Applikation einen Parser schreiben, der jeden Knoten erfasst und ihn dann in dem Format abspeichert in dem du es auch geladen hast.

Wie hast du die Daten für deinen Baum denn geladen? Über einen eigenen Parser, oder gab es da schon etwas fertiges? Je nachdem könntest du ja nachgucken, ob es dann auch einen Parser gibt, der dir den Baum wieder in das gewünschte Format schreibt.

Edit: Letztendlich musst du dieses
Code:
pem.saveToCSVFile(null);
selber schreiben. Dabei sollte wohl das
Code:
null
durch den Pfad zu der Speicher-Datei ersetzt werden, den du mittels JFileChooser auswählen könntest. Der JFileChooser ist aber nur ein Auswahldialog und übernimmt nicht das Speichern selbst.
 
Zuletzt bearbeitet:

Ana

Mitglied
Hallo,

also es gibt node welche ich importiere, und es gibt solche, welche ich "direkt" im COde einlese also über
Java:
BufferedReader in = new BufferedReader(new FileReader(new File("C:/Users/ana/workspace/test/src/test.csv")));

die welche ich "direkt einlese", kann ich ändern und die änderung bleibt auch bestehen, die anderen welche ich importiere verschwinden dann wieder... ich probier mal das was du noch ergänz hast.
danke
 

Paddelpirat

Bekanntes Mitglied
Ich versteh nicht ganz wo du unterscheidest zwischen Daten importieren und Daten "direkt" im Code über BufferedReader einlesen. Wie "importierst" du denn?
 

Ana

Mitglied
ich mache das über einen Button foledermassen. Die Daten werden richtig angezeigt nur nicht gespeichert.

Java:
else if(event.getSource().equals(m_importfile))
        {
            JFileChooser fco = new JFileChooser();
            int rc = fco.showOpenDialog(m_importfile);
            File f = fco.getSelectedFile();

            if(rc == JFileChooser.APPROVE_OPTION)
            {
                try
                {              
				pem.loadFromCSVFile(f);
                }
                catch(Exception ex)
                {
                   JOptionPane.showMessageDialog(mw, ex.getMessage(), "Fehler: Konnte nicht geladen werden", JOptionPane.ERROR_MESSAGE);
                }
                /**/
                DefaultMutableTreeNode selNode = (DefaultMutableTreeNode)m_tree.getLastSelectedPathComponent();  
                if (selNode != null )  
                {  
      
                    // add new node as a child of a selected node at the end 
                    DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(f);  
                    m_model.insertNodeInto(newNode, selNode, selNode.getChildCount());  
                    
                   
                        
                     //make the node visible by scroll to it 
                    TreeNode[] nodes = m_model.getPathToRoot(newNode);  
                    TreePath path = new TreePath(nodes);  
                    m_tree.scrollPathToVisible(path);  
                      
                    //select the newly added node 
                    m_tree.setSelectionPath(path);  
                      
                    //Make the newly added node editable 
                    m_tree.startEditingAtPath(path);  
                    
                    m_tree.startEditingAtPath(path);
                
                    
                    System.out.print(f);
                    m_rootNode.add(newNode);
           
                    //Importieren
                    {
                    	try
                    	{
                    		BufferedReader in = new BufferedReader(new FileReader(f));
            			    String str;
                    		while ((in.readLine()) != null)
                    		//while ((str = in.readLine()) != null) 
                    		{
                    			
                    			DefaultMutableTreeNode node1 = new DefaultMutableTreeNode(in.readLine());    			 
                    			newNode.add(node1);
                    		}
                    	}
                    	catch(Exception e)
                    	{
                    		e.printStackTrace();
                    	}	
                    }

        			try 
        			{
        			    BufferedReader in = new BufferedReader(new FileReader(f));
        			    String str;
        			    while ((str = in.readLine()) != null) 
        			    {	
        			    
        			    	//process(str);       			    	
        			    	DefaultMutableTreeNode node1 = new DefaultMutableTreeNode(in.readLine());    			 
    	        			newNode.add(node1);
        			    }
   
        			} catch (IOException e)
        			{
        				e.printStackTrace();
   
        			}
        			}       		
            }
        }
 

Paddelpirat

Bekanntes Mitglied
Tja beim Speichern musst du also eigentlich jede Node deines Baumes durchgehen und dann mit BufferedWriter abspeichern. Also eigentlich den umgekehrten Weg gehen.

Was mir aber sofort bei deinem Code auffällt sind diese Konstruke:

Java:
                            while ((in.readLine()) != null)
                            //while ((str = in.readLine()) != null) 
                            {
                                
                                DefaultMutableTreeNode node1 = new DefaultMutableTreeNode(in.readLine());                
                                newNode.add(node1);
                            }

Ist es gewollt, dass du jede zweite Zeile beim einlesen überspringst? Weil du rufst immer zwei Mal in.readLine() auf, erstellst aber nur beim zweiten Mal eine neue TreeNode.
 

Ana

Mitglied
Hallo,

ich versuch das mit bufferedWriter. Nein es ist eigentlich nicht gewollt, dass ich ejde 2 Zeile überspringe und ich seh den Fehler nichtm, was muss ich ändern, dass es jede Zeile liest?
 

Paddelpirat

Bekanntes Mitglied
Du musst eigentlich das auskommentierte benutzen:

Java:
while ((str = in.readLine()) != null) 
{
        DefaultMutableTreeNode node1 = new DefaultMutableTreeNode(str);                
        newNode.add(node1);
}

Edit: Jedes Mal wenn du in.readLine() aufrufst wird eine Zeile gelesen.
 

Ana

Mitglied
Ich danke dir.

Ich bin noch nicht dazu gekommen das mit dem bufferedWriter zu probiere. gibt es irgenwo ein Beispiel?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
Jambolo Methode, welche die 3 letzten Parameter Werte speichert Java Basics - Anfänger-Themen 20
LetsSebi Methode, die einen arry von objekten speichert in einer datei Java Basics - Anfänger-Themen 6
M Implementieren einer Datenstruktur, welche nur 5 Objekte speichert Java Basics - Anfänger-Themen 3
M Objekt einer Klasse speichert die Veränderung nicht Java Basics - Anfänger-Themen 1
cpt.Tomato Best Practice Wie speichert/Dokumentiert Ihr eure Programme? Java Basics - Anfänger-Themen 8
D Erste Schritte Java speichert wert des Scanners nicht Java Basics - Anfänger-Themen 2
V Warum speichert meine String-Variable nummerische Werte? Java Basics - Anfänger-Themen 3
GreenTeaYT Variable speichert nicht die korrekte Zahl ein Java Basics - Anfänger-Themen 12
M Erste Schritte Wie speichert und gibt man Arrays aus? (JLabel) Java Basics - Anfänger-Themen 12
N Klassen Class nur einmal ausführen und sie speichert daten für alle anderen classes? Java Basics - Anfänger-Themen 3
H Wo speichert man am besten Daten? Appdata? Java Basics - Anfänger-Themen 14
R Kalender speichert keine Zeit Java Basics - Anfänger-Themen 2
M OOP ArrayList speichert nicht richtig Java Basics - Anfänger-Themen 3
7 Array speichert Werte nicht? NullPointerException Java Basics - Anfänger-Themen 2
G wo speichert man am besten eine Datei? Java Basics - Anfänger-Themen 4
D Klasse speichert Daten nicht wie sie soll Java Basics - Anfänger-Themen 4
E DB4O speichert mein JLayeredPane nicht ab! Java Basics - Anfänger-Themen 13
NightmareVirus java speichert daten net Java Basics - Anfänger-Themen 3
M arraylist die hashmaps speichert? Java Basics - Anfänger-Themen 2
R Speichert eine ArayList Strings oder Integer Java Basics - Anfänger-Themen 4
M Jtable änderung updaten Java Basics - Anfänger-Themen 2
O Vererbung änderung des Konstruktors Java Basics - Anfänger-Themen 8
J Jtable änderung soll graphics aktualisieren Java Basics - Anfänger-Themen 4
G Auf änderung horchen Java Basics - Anfänger-Themen 6
G JFrame AnzeigeProblem bei änderung der Fenstergröße Java Basics - Anfänger-Themen 3
A "Hello World"-Programm läuft nicht Java Basics - Anfänger-Themen 16
D Regex greift nicht richtig Java Basics - Anfänger-Themen 4
richis-fragen JTable den angezeigten WERT nicht den Wert aus dem Model ausgeben. Java Basics - Anfänger-Themen 3
richis-fragen JTable Header ausgeblendete (width = 0) nicht per mouseDragged aufziehen. Java Basics - Anfänger-Themen 9
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
S nach Import von jars (PLC4x) in Eclipse kann nicht mehr compiliert werden Java Basics - Anfänger-Themen 9
J Datenüberwachung funktioniert nicht Java Basics - Anfänger-Themen 9
S Wie debugge ich dies am besten: SingleThreadExecutor führt Task nicht aus..? Java Basics - Anfänger-Themen 29
H JDK installieren jdk-21 wird nicht erkannt Java Basics - Anfänger-Themen 13
N Klassen Hintergrundfarbe in JPanel ändert sich nicht Java Basics - Anfänger-Themen 3
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
mo13 JTextField funktioniert nicht Java Basics - Anfänger-Themen 4
J .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
K Verstehe Rekursion nicht ganz Java Basics - Anfänger-Themen 7
M OOP Brüche nicht richtig berechnen Java Basics - Anfänger-Themen 3
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
K TicTacToe belegtes feld nicht neu besetzbar Java Basics - Anfänger-Themen 1
K TicTacToe belegtes Feld nicht neu besetzbar Java Basics - Anfänger-Themen 3
A Warum wird mein jdk nicht gefunden? Java Basics - Anfänger-Themen 3
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
K Programm compilierbar aber nicht ausführbar... Java Basics - Anfänger-Themen 21
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
G Mit jPackage erstellte EXE funktioniert nicht Java Basics - Anfänger-Themen 2
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
G Robot funktioniert nicht bei SelectionListener Java Basics - Anfänger-Themen 6
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
J jar Befehl wird nicht erkannt Java Basics - Anfänger-Themen 7
missy72 Erste Schritte (nicht) Deterministischer endlicher Automat Java Basics - Anfänger-Themen 9
T Getter/Setter - wie sieht ein Setter aus? Und wie nicht? Java Basics - Anfänger-Themen 34
T catch(InputMismatchException) wird nicht ausgefürt/erkannt Java Basics - Anfänger-Themen 12
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
P Netbeans installation geht nicht Java Basics - Anfänger-Themen 26
R RegEx funktioniert nicht Java Basics - Anfänger-Themen 14
T HashMap Lsite gibt die sachen nicht aus wie gewollt. Java Basics - Anfänger-Themen 3
H Counter durch gepresste Taste nur auf 1 erhöhen und nicht durchzählen lassen Java Basics - Anfänger-Themen 7
S 2 Reihen ratio-btn, eine Reihe funktioniert andere nicht Java Basics - Anfänger-Themen 4
T scanner nicht erkannt Java Basics - Anfänger-Themen 3
monsterherz Punkt Notation funktioniert nicht Java Basics - Anfänger-Themen 4
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
monsterherz if / else if mit Fehler den ich leider nicht finde Java Basics - Anfänger-Themen 11
D Jar Datei startet unter Linux nicht Java Basics - Anfänger-Themen 3
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
Darkherobrine9 Import klappt nicht Java Basics - Anfänger-Themen 7
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
R Compiler-Fehler Variable wird nicht gefunden bzw. erkannt? Java Basics - Anfänger-Themen 2
_so_far_away_ Inventarisierungssystem brauche switch Cases und weiß nicht, wie ich e implementieren muss Java Basics - Anfänger-Themen 5
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
D Quellcode für cmd funktioniert nicht Java Basics - Anfänger-Themen 9
C Kann mir jemand sagen warum ich nicht mal rechnen kann ? Java Basics - Anfänger-Themen 32
K Java Lotto Spiel; ich komme nicht weiter Java Basics - Anfänger-Themen 15
A JavaFX-Anwendung läuft nicht mit Selenium WebDriver Java Basics - Anfänger-Themen 0
T Meine Klasse wird nicht gefunden Java Basics - Anfänger-Themen 1
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
heinrich172 Methoden Trotz gleichem Element stimmt Vergleich nicht? Java Basics - Anfänger-Themen 7
I Entity Objekt nicht gefunden -> Webhook empfangen in der gleichen Methode (Transaktion) Java Basics - Anfänger-Themen 37
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
MiMa Ungültiges Datum wird nicht erkannt ?? Java Basics - Anfänger-Themen 6
J Meine Mails gehen nicht raus Java Basics - Anfänger-Themen 8
Zrebna Kann Java Programm nicht in Konsole ausführen Java Basics - Anfänger-Themen 1
S Ist JDK jetzt free oder nicht? Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben