java.lang.NoClassDefFoundError

Status
Nicht offen für weitere Antworten.

naitSirch

Mitglied
Hallo, ich bin neu hier im Forum, und hoffe, dass ich jetzt ins richtige Forum poste... gibt ja 'ne ziemlich große Auswahl hier 😀
Ich weiß jetzt nicht genau, wie ich Anfangen soll. Aber ich habe mächtige Probleme. Also, im letzten Jahr (11. Klasse) hatte ich Infound jetzt in der 12. habe ich LK und das ist total anders, weil wir Kooperation haben und die Lehrerin von der anderen Schule ist viel weiter als wir es gewesen sind.

Und jetzt sollen wir ein Programm schreiben, was Waggons mit einem bestimmten Wert in einem Rangierbahnhof mit 3 Gleisen nach dem Wert ordnet. Dies soll mithilfe von Stacks gemacht werden (ich denke, Stacks sollten bekannt sein, oder?). Allerdings ist alles noch ziemlich unvollständig Meine 2 Klassen sehen so aus:

Code:
import sum.komponenten.*;
import sum.ereignis.*;

public class Rangierbahnhof extends EBAnwendung
{
    private Textfeld txtW1,txtW2,txtW3,txtW4;
    private Etikett etGleisA,etW1,etW2,etW3,etW4,etReihenfolge,etGleisC;
    private Knopf knRangieren;
    private Lok meineLok;
    
    private int zurueck;
    
    public Rangierbahnhof()
    {
        txtW1 = new Textfeld(130,90,30,25,"16");
        txtW2 = new Textfeld(130,120,30,25,"11");
        txtW3 = new Textfeld(130,150,30,25,"15");
        txtW4 = new Textfeld(130,180,30,25,"14");
        
        etW1 = new Etikett(20,90,80,25,"1. Waggon:");
        etW2 = new Etikett(20,120,80,25,"2. Waggon:");
        etW3 = new Etikett(20,150,80,25,"3. Waggon:");
        etW4 = new Etikett(20,180,80,25,"4. Waggon:");
        
        etGleisA = new Etikett(20,50,300,25,"Nummern der Waggons auf Gleis A:");
        
        etReihenfolge = new Etikett(320,90,400,25,"Reihenfolge der Waggons auf Gleis C:");
        etGleisC = new Etikett(320,120,200,25,"");
        
        knRangieren = new Knopf(20,210,80,25,"Rangieren","set_rangieren"); //beim klicken wird die Methode set_rangieren() aufgerufen
    }
    
    public void set_rangieren()
    {
        this.meineLok = new Lok();
        
    }
    
    public int get_WaggonNr(int zahl)
    {
        switch(zahl)
        {
            case 1: zurueck = (int)txtW1.inhaltAlsZahl();break;
            case 2: zurueck = (int)txtW2.inhaltAlsZahl();break;
            case 3: zurueck = (int)txtW3.inhaltAlsZahl();break;
            case 4: zurueck = (int)txtW4.inhaltAlsZahl();break;
            default: zurueck = (int)txtW4.inhaltAlsZahl();
        }
        return zurueck;
    }
}

Code:
public class Lok
{
    public Stack GleisA, GleisB, GleisC;
    public Rangierbahnhof meinBahnhof;

    public Lok()
    {
        GleisA = new Stack();
        GleisB = new Stack();
        GleisC = new Stack();
        
        GleisA.push(new Integer (16));
        GleisA.push(new Integer (11));
        GleisA.push(new Integer (15));
        GleisA.push(new Integer (14));
        
        //this.set_sortieren();
    }
    
    public void set_sortieren()
    {
        if(!(GleisA.isEmpty()))
        {
         
        }
    }
    
}

Also, beim ausführen wird mithilfe der "SuM"-Bibliotheken ein Fenster erzeugt, was 4 Eingabefelder besitzt und einen Button zum Ausführen. Und noch ein paar Textfelder.
Das Problem ist, dass die Funktion set_rangieren() folgende Ausgabe verursacht: "Fehler in Methode "set_rangieren" von Knopf "Rangieren": java.lang.NoClassDefFoundError: Element"
Und ich habe keinen blassen Schimmer woran das liegt. Ich habe manchmal das Gefühl, dass das an dem programm BlueJ liegt, weil Kollegen, die Java-Editor benutzen nicht solche Probleme haben.
Ich hoffe, ihr könnt so schon einen Fehler finden... weil ich sonst echt durchdrehe. Ich saß schon stundenlang dadran und konnte nichts finden.

Vielen Dank schonmal im voraus.
Christian
 
Hi,

ich bin zwar auch nicht der Held in Java, bin ebenfalls in meinen Anfängen, aber mir ist aufgefallen, dass da eine import-Anweisung fehlt.
Du wirst wohl die Klasse Lok in die Klasse Rangierbahnhof importieren müssen.

Gruß
cmkatz
 
Gibt es in den "SuM"-Bibliotheken eine Klasse, die "Element" heißt!? Nach der Fehlermeldung scheint diese nicht gefunden zu werden...
 
@ cmkatz: Kann eigentlich nicht sein. Lok ist ja eine Klasse, und importieren kann man nur Pakete oder Bibliotheken, oder?

@ Sky: Auch das trifft nicht zu 🙁 hab' die Dokumentation der Bibliothek durchgesehen, aber von "Element" staht da nirgends etwas. :cry:

Boar, ich bin am verzweifeln [schild=3 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]I need Help[/schild]
 
Hi,

importieren kann man Packages und Klassen. Wenn da was nicht stimmt, meckert der Compiler. Beim Ausführen sind die Imports irrelevant.

Ist diese SuM-Bibliothek public ? Kannste uns die mal zur Verfügung stellen ?

Gruß
Mag1c
 
Hi,

wie startest du dein Programm ? Hast du auch alle 5 Jars in deinem Projekt ? Ich hab das mal kurz ausprobiert, bei mir ging es auf Anhieb (nachdem ich herausgefunden habe, daß ich das Ganze mit der start()-Methode starte).

Gruß
Mag1c
 
Naja, ich benutze BlueJ, und da braucht man so 'ne Start, oder Main-Methode nicht ;-)
Ich konnte das Programm ja auch ausführen, nur wenn ich dann auf "Rangieren" geklickt habe, kam dieser Fehler...
Aber ich habe ganz zufällig selbst herausgefunden, woran das lag. Der Tipp mit der Klasse, die "Element" heißt, war gar nicht so schlecht. Zwar gab es die Klasse nicht in den SuMs aber dafür habe ich an einer anderen stelle eine Klasse namens "Element.class" gefunden, die ich dann probehalber mal ins Projekt eingefügt habe... und dann ging's... Obwohl ich überaupt net weiß, weshalb der diese Klasse braucht.

Also, vielen Dank für Eure Hilfe 🙂 und viele Grüße,
Christian
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben