Hallo,
erstmal zur Einleitung : Ich habe ein Projekt mit 3 Packages(main, data, functions), in denen wiederum mehrere Klassen stehen. Nun habe ich in einer Klasse aus dem Package main einen Funktionsaufruf gestartet, die wiederum eine andere Funktion aus einem anderen Package ausführt, diese führt allerdings wieder eine andere Funktion aus dem dritten Package aus.
Allerdings bekomme ich eine ClassNotFoundException. Alles ist public und alle Packages sind richtig importiert (sonst würde Eclipse mir das ja anzeigen, dass was fehlt).
Hoffe ihr wisst woran es liegen kann. Bei Bedarf füge ich noch die jeweiligen Code-Schnipsel ein
cash rules everything around me
Moin,
steht denn alles richtig im ClassPath ?
gruß
Klaus
Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
Code java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
| java.lang.ClassNotFoundException: Worte
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at java.io.ObjectInputStream.resolveClass(Unknown Source)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at java.util.ArrayList.readObject(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at data.WhiteList.loadWL(WhiteList.java:43)
at functions.Search.compareWL(Search.java:108)
at graphics.SemHMenu$4.actionPerformed(SemHMenu.java:102)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source) |
cash rules everything around me
cash rules everything around me
Okay,
hier die Code-Ausschnitte in der Folge, wie sie aufgerufen werden :
Code java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| public void actionPerformed(ActionEvent ev) {
JFileChooser fileChooser = new JFileChooser(
"../Lesehilfe/src/txtressourcen");
if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
try {
JTextArea Tg = new JTextArea();
File selectedFile = fileChooser.getSelectedFile();
Tg.read(new FileReader(selectedFile), null);
dataField.TA.setText(Tg.getText());
Search.compareWL();
} catch (IOException ex) {
// CenterMiddlePanel.putText( ex.getMessage() );
}
}
} |
Die Search.compareWL() sieht so aus :
Code java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| public static String compareWL() throws IOException {
ArrayList<Worte> liste = WhiteList.loadWL();
String t = "";
String inhalt = dataField.TA.getText();
for(Worte inhalte : liste)
{
if(inhalte.getName().equals(inhalt)) {
t = t + inhalte + " \n";
wordField.addString(t);
}
}
return null;
} |
und die WhiteList.loadWL() so :
cash rules everything around me
Ja, es liegt alles in Packages und die sind auch richtig importiert (zumindest zeigt mir Eclipse keine Fehler! diesbezüglich).
Die SUID ist schon etwas älter, dürfte aber danach keine Veränderungen danach gemacht haben. Wie kann ich denn selber eine erzeugen ? Die jetzige wurde automatisch eingesetzt.
Gruß
Edit : Der ClassNotFound-Fehler wird durch diese Zeile aufgerufen :
Code java:
1
| words = (ArrayList<Worte>) ois.readObject(); |
Aber ich verstehe einfach nicht wieso ! Ich habe alle Objekte auch als ArrayList serialisiert, daher sollte die Deserialiserung auch so ablaufen oder ?
Zusatz : Die Datei whitelist.ser wurde allerdings mit einem anderen Projekt erstellt. Liegt dort die Fehlerquelle ? Also das Sachen mitserialisiert wurden, die das neue Programm nicht auswerten kann ?
Geändert von AvS (11.05.09 um 18:15 Uhr)
cash rules everything around me
Hi !
Ich habe die ganze Datei jetzt mal in der main-Funktion des neuen Projekts erzeugt und die Objekte serialisiert. Nun kann ich auch die Methoden ohne Fehler ausführen. Ich versteh das aber nicht so ganz, warum das nun klappt ? Die Klassen waren im Prinzip die gleichen, waren nur in zwei verschiedenen Projekten.
cash rules everything around me
Gut, werd ich mir für die Zukunft merken.
Vielen Dank
cash rules everything around me