Serialisierung

Status
Nicht offen für weitere Antworten.

Kerberus

Bekanntes Mitglied
java.io.NotSerializableException: java.lang.Thread

Habe ein Interface geschrieben das von Runnable abgeleitet ist.
Habe danach eine Klasse geschrieben, die dieses implementiert und gleichzeitig auch noch java.io.Serializable. Was die Fehlermeldung bedeutet ist mir schon klar :) allerdings, weiss ich jetzt nicht, wie ich mein Problem lösen soll/kann. Gibt es keine Möglichkeit meine Klasse doch zu serialisieren?
 

meez

Top Contributor
Nein...Threads sind prinzipiell NIE serialisierbar...
Du kannst die Daten in einem Value-Object speichern..
 

L-ectron-X

Gesperrter Benutzer
Ich denke dass diese Klasse eventuell doch serialisierbar ist.
Dafür gibt es das Schlüsselwort transient. Instanzvariablen, die mit diesem Schlüsselwort deklariert wurden, werden vom Serialisierungsprozess ausgeschlossen. Probiere das doch mal aus, vielleicht gehts ja. Ich habe es nicht getestet.
 
B

bygones

Gast
ehrlich gesagt kann ich dein Problem nicht nachfolziehen.

du verwendest in den Klassen doch gar nicht die Klasse Thread...

folgendes Bsp ist vielleicht unsinnig - aber so hab ichs nach deiner Aussage verstanden:
Code:
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.Serializable;

/*
 * Created on 26.07.2004
 */

/**
 * @author Andreas Groscurth
 */
public class Test implements TestRun, Serializable {
    private String result;
    
    public static void main( String[] args ) {
        Test t = new Test();
        t.doIt("hallo");
        new Thread(t).start();
    }

    /* (non-Javadoc)
     * @see java.lang.Runnable#run()
     */
    public void run() {
        try {
            ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("det"));
            os.writeObject(this);
            os.flush();
            os.close();
        }
        catch ( FileNotFoundException e ) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        catch ( IOException e ) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
         
    }

    /* (non-Javadoc)
     * @see TestRun#doIt(java.lang.String)
     */
    public void doIt( String s ) {
        result = s;        
    } 
}
interface TestRun extends Runnable {
    public void doIt(String s);
}
das geht....
 

Kerberus

Bekanntes Mitglied
Habe eine Möglichkeit gefunden das Problem zu umgehen. Ich kann meine Klasse auch ohne Runnable zu implementieren gebrauchen. Allerdings habe ich nun ein anderes Proglem:
Wenn ich die serialisierte Klasse in einem anderen Programm laden möchte erhalte ich einen Error, dass die betreffende Klasse nicht gefunden wurde. Wahrscheinlich muss ich diese zuesrt laden, oder? Wenn ja, wie geht das? Habe es mit ClassLoader versucht, doch der meldet mir immer, dass die Klasse nicht gefunden werden kann.

[EDIT] @DeathByAClown Ich wollte eine ganze Klasse serialisieren, die Runnable implementiert. Im Sinne von:
Code:
public class meineKlasse implements Runnable{
 ...
   public void run(){
   }
}

public class Main{
 public static void main(String[] args}
 {
   ...
   meineKlasse c = new meineKlasse();
   objectouput.writeObject(c);
   ...
 }
}
 

Kerberus

Bekanntes Mitglied
Habe folgendes zum Fehler gefunden:
Quelle: Java2 "Java in 21 Tagen" Verlag: Markt+Technik 2.Edition

ClassNotFoundException tritt auf, wenn das aus dem Stream ausgelesene Objekt zu einer Klasse gehört, die unauffindbar ist. Wenn Objekte seialisiert werden, wird die Klasse selbst nich in den Stream gespeichert. Stattdessen wird der Name der Klasse in den Stream gespeichert, und der Java-Interpret lädt die Klasse, sobald das Objekt aus dem Stream geladen ist.

Da meine serialisierte Klasse aus einem anderen Programm stammt, ist es klar, dass diese Exception auftritt. Es sollte doch nun aber Möglich sein, die Klasse zu laden, bevor man das Objekt aus der Datei einliest, oder?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
antonia09 Einkaufszettel Persistenz und Serialisierung Allgemeine Java-Themen 6
D Serialisierung und Deserialisierung von Objekten - Frageprogramm Allgemeine Java-Themen 4
R Datentypen Korrekte integer in Hex ASCII Konvertierung und serialisierung Allgemeine Java-Themen 1
M Serialisierung funktioniert nicht Allgemeine Java-Themen 9
Z Best Practice Serialisierung Allgemeine Java-Themen 2
Arif Input/Output Serialisierung - Datei wird nicht erzeugt Allgemeine Java-Themen 3
M Alternative zur Serialisierung.. Protobuf? Allgemeine Java-Themen 9
E Serialisierung - Deserialisierung Allgemeine Java-Themen 4
Thallius Serialisierung schlägt fehl. Allgemeine Java-Themen 3
M Serialisierung & Verschlüsselung Allgemeine Java-Themen 2
E Serialisierung - Sinn einer generierten serialVersionUID? Allgemeine Java-Themen 4
V Serialisierung von Instanz eigener Klasse Allgemeine Java-Themen 5
A Input/Output Serialisierung und Object.hashCode() Allgemeine Java-Themen 3
K Serialisierung einer verschachtelten Datenstuktur Allgemeine Java-Themen 9
Tobse Input/Output Dateiformat: Serialisierung VS Custom format Allgemeine Java-Themen 6
A Problem bei Serialisierung von Bibliotheks-Klassen Allgemeine Java-Themen 6
A Input/Output Serialisierung Sonderzeichen Allgemeine Java-Themen 3
P Serialisierung der Oberklasse Allgemeine Java-Themen 2
Kr0e Circular reference - Serialisierung Allgemeine Java-Themen 6
K Serialisierung in Properties-Datei möglich? Allgemeine Java-Themen 3
B Serialisierung mit Unterobjekten über Netzwerk Allgemeine Java-Themen 3
C Serialisierung - Standardwert für nachträglich hinzugefügtes Feld Allgemeine Java-Themen 2
S Serialisierung der Kindklasse Allgemeine Java-Themen 5
K Serialisierung komplett selbst machen Allgemeine Java-Themen 13
C Serialisierung ohne Serializable Allgemeine Java-Themen 4
S Serialisierung und Referenzen Allgemeine Java-Themen 6
S Viele Bilder -> Speicher ausgelastet? / (De-)serialisierung geht nicht mehr richtig Allgemeine Java-Themen 8
E Objekt bei Serialisierung ändern Allgemeine Java-Themen 2
Q Serialisierung / Speicherung Geschwindingkeit & Aktuelle Position Allgemeine Java-Themen 7
Z Serialisierung und Deserialisierung einer HashMap Allgemeine Java-Themen 17
W Serialisierung Allgemeine Java-Themen 6
K Serialisierung von Hashmap in Vector Allgemeine Java-Themen 3
F Serialisierung und Obfuscation? Allgemeine Java-Themen 7
G (De)serialisierung und Referenzen Allgemeine Java-Themen 5
T Serialisierung: Wie macht RMI das so schnell? Allgemeine Java-Themen 14
J Serialisierung: readInt + writeInt Allgemeine Java-Themen 4
X Einige Fragen zu Serialisierung Allgemeine Java-Themen 2
J bean + serialisierung + serialVersionUID Allgemeine Java-Themen 3
thE_29 Wie funktioniert Serialisierung? Allgemeine Java-Themen 10
S Problem mit Serialisierung Allgemeine Java-Themen 2
C Serialisierung von JComboBox Allgemeine Java-Themen 4

Ähnliche Java Themen


Oben