fehlerfrei kompilliert, kann jedoch nicht ausgeführt werden

dummundbloed

Mitglied
Hi

Ich konnte den Code unten problemlos durch den Compiler jagen, jedoch nicht ausführen.
Code:
$ java BierLied
$ java BierLied.class 
Exception in thread "main" java.lang.NoClassDefFoundError: BierLied/class
Caused by: java.lang.ClassNotFoundException: BierLied.class
	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:315)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:330)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:398)
Java:
public class BierLied {
	public static void main (String[] args) {
		int bierAnzahl = 99;
		String wort = "Flaschen";
		
		while (bierAnzahl == 0) {
			if (bierAnzahl == 1) {
				wort = "Flasche";
				
			}
			System.out.println(bierAnzahl + " " + wort + " Bier im Kühlschrank");
			System.out.println(bierAnzahl + " " + wort + " Bier.");
			System.out.println("Hole eine raus.");
			System.out.println("Und lass sie rumgehen");
			bierAnzahl = bierAnzahl - 1;
			
			if (bierAnzahl > 0) {
				System.out.println (bierAnzahl + " " + wort + "Bier im Kühlschrank+");
			} else {
				System.out.println ("Kein Bier mehr im Kühlschrank");
			}
			}
	}

}
Code:
 

Michael...

Top Contributor
Der erste Aufruf funktioniert doch, gibt nur nichts aus aufgrund einer falschen Bedingung der while Schleifer.
Der zweite funktioniert nicht, da man Klassen immer ohne die Endung .class aufruft.
 

tanja

Mitglied
hallo ich bekomme die gleiche fehlermeldun also:
Exception in thread "main" java.lang.NoClassDeFoundError:??????
egal ich wie das programm ausführen will( java d.name javac d.name.java), bekomme ich gleiche meldung...

ich habe aufm deskop ein ordner mit den namen java-mustern erstellt. und speichere immer meine neue programme da rein.. Kann das Problem daran liegen, dass ich den ordner am deskop also weil ich nicht in c: oder wo anders erstellt hab?
 

sambalmueslie

Bekanntes Mitglied
hallo ich bekomme die gleiche fehlermeldun also:
Exception in thread "main" java.lang.NoClassDeFoundError:??????
egal ich wie das programm ausführen will( java d.name javac d.name.java), bekomme ich gleiche meldung...

ich habe aufm deskop ein ordner mit den namen java-mustern erstellt. und speichere immer meine neue programme da rein.. Kann das Problem daran liegen, dass ich den ordner am deskop also weil ich nicht in c: oder wo anders erstellt hab?

Guckst du mal hier :

NoClassDefFoundError (Java 2 Platform SE v1.4.2)

würde mal schauen ob du alle dateien in dem Verzeichniss hast oder evtl noch den Classpath setzen musst :)
 

eRaaaa

Top Contributor
1) Wie sieht dein Code aus, bzw package-Deklaration?
2) Konntest du den Code denn auch kompilieren und es scheitert am Ausführen, oder kannst du auch nicht kompilieren?
3) genaue Fehlermeldung (ohne ????) wäre auch nicht schlecht !
 
Zuletzt bearbeitet:

sambalmueslie

Bekanntes Mitglied
bin im Dskop/java-muster ordner..
und wie kann ich dann classpath einstellen bzw. einsetzen?


so zum beispiel:
Classpath (Java) - Wikipedia, the free encyclopedia

wenn du dich mit sowas nicht auskennst und es nicht unbedingt brauchst, würd ich dir eine IDE (Eclipse Eclipse.org home z.b.) empfehlen.
Die nimmt dir das alles ab und du kannst dich auf die Programmiersprache konzentrieren :)

Naja aber einen englischen Text lesen und verstehen, da wirst du auf längere Sicht nicht dran vorbeikommen :)

Gruß Oli
 

tanja

Mitglied
hi era.. die code sehen so aus!!
Java:
//Binaerer Suchbaum

import java.*;
import java.lang.*;
// Knoten des Suchbaums
class BKnoten
{
  int Wert;
  BKnoten links;
  BKnoten rechts;

  BKnoten()
  {
    int Wert;
    links = null;
    rechts = null;
  }

  BKnoten(int Wert)
  {
	this.Wert = Wert;
    links = null;
    rechts = null;
  }
}

//
// der Baum
//

class bSBaum
{
  public static String newline = System.getProperty("line.separator");
	  BKnoten wurzel;
     // ein bsBaum mit Wurzel null;
	  bSBaum (){wurzel = null;}

	//
	// Einen Knoten anhaengen
	//
   // die Seite an der eingefuegt wird, wird je nach groeße der Zahl bestimmt
	  
  void put (int Wert)
  {
    BKnoten aktueller = wurzel;
    BKnoten frueherer = aktueller;
    if (wurzel == null)
		{wurzel = new BKnoten(Wert);}
    else
    {
      boolean eingefuegt = false;
      while (eingefuegt == false)
      {
		frueherer = aktueller;
        if (Wert < aktueller.Wert)
        {
			if (aktueller.links == null)
			{
				aktueller.links = new BKnoten(Wert);
				eingefuegt = true;
			}
			aktueller = aktueller.links;
        }
        else
        {
          if (aktueller.rechts == null)
          {
            aktueller.rechts = new BKnoten(Wert);
            eingefuegt = true;
          }
          aktueller = aktueller.rechts;
        }
      }
    }
  }
  
  //
  // Den Knoten mit dem Wert Wert loeschen 
  //
  
  boolean loeschen (int Wert) {
    boolean geloescht = true;
    BKnoten aktueller = wurzel;
    BKnoten frueherer = aktueller;
    while (aktueller != null) {
      if (Wert > aktueller.Wert) {
        frueherer = aktueller;
        aktueller = aktueller.rechts;
      }
      else if (Wert < aktueller.Wert) {
        frueherer = aktueller;
        aktueller = aktueller.links;
      }
      else if (Wert == aktueller.Wert) {
        geloescht = false;
        break;
      }
    }

    if (pruefe(aktueller) == 0)
    {
      if (aktueller.Wert > frueherer.Wert)
      {frueherer.rechts = null;}
      else
      {frueherer.links = null;}
    }
    else if (pruefe(aktueller) == 1)
    {
		if (aktueller.Wert > frueherer.Wert)
		{
			if (aktueller.links != null)
			{frueherer.rechts = aktueller.links;}
			else {frueherer.rechts = aktueller.rechts;}
		}
		else
		{
			if (aktueller.links != null)
			{frueherer.links = aktueller.links;}
			else
			{frueherer.links = aktueller.rechts;}
		}
    }
    else if (pruefe(aktueller) == 2)
    {
		BKnoten temp = inord(aktueller);
		if (aktueller == wurzel)
		{wurzel.Wert = temp.Wert;}
      else
      {
		if (aktueller.Wert > frueherer.Wert)
		{frueherer.rechts.Wert = temp.Wert;}
        else{frueherer.links.Wert = temp.Wert;}
      }
    }
    return geloescht;
  }
	
  //
  BKnoten inord (BKnoten a)
	{
		int t = 0;
		BKnoten ret, frueherer = new BKnoten();
		frueherer = a;
		a = a.rechts;
		while (a.links != null)
		{
			frueherer = a;
			a = a.links;
			t = 1;
		}
		ret = a;
		if (t == 0)
		{frueherer.rechts = null;}
		else
		{frueherer.links = null;}
		a = null;
		return ret;
	}
	
	//
	// Pruefe, ob der Knoten a existiert
	//
	
	int pruefe(BKnoten a)
	{
		int ret;
		if ((a.links != null) && (a.rechts != null))
		{ret = 2;}
		else if ((a.links == null) && (a.rechts == null))
		{ret = 0;}
		else
		{ret = 1;}
		return ret;
	}
	
	// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
	// Gibt den Knoten a am Bildschirm aus (preorder)
	// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
	
	void printKnoten(BKnoten oot)
	{
		if (oot.links != null)
			{printKnoten(oot.links);}
		// Wert + Leerzeile
		System.out.print(oot.Wert + " ");
		if (oot.rechts != null)
			{printKnoten(oot.rechts);}
	}
	
	// Inorder
	
	void printKnotenInorder(BKnoten oot)
	{
		System.out.print(oot.Wert + " ");
		if (oot.links != null)
			{printKnotenInorder(oot.links);}
		// Wert + Leerzeile
		if (oot.rechts != null)
			{printKnotenInorder(oot.rechts);}
	}
	
	void printKnotenPostorder(BKnoten oot)
	{
		if (oot.links != null)
			{printKnotenPostorder(oot.links);}
		// Wert + Leerzeile
		if (oot.rechts != null)
			{printKnotenPostorder(oot.rechts);}
		System.out.print(oot.Wert + " ");
	}
	
	//
	// Gibt den Knoten a aus, gefolgt von einem Zeilenwechsel
	//
	
	void printKnotenln (BKnoten oot)
	{
		printKnoten(oot);
		System.out.print(newline);
	}
	
	void mehrfachLoeschen (int ... oots)
	{
		for (int i = 0; i < oots.length; i++)
		{loeschen (oots[i]);}
	}
	
	void mehrfachPut (int ... oots)
	{
		for (int i = 0; i < oots.length; i++)
		{put (oots[i]);}
	}
	
	public static void main(String[] args)
	{
		bSBaum a = new bSBaum();
		/*a.put(8);
		a.put(7);
		a.put(5);
		a.put(4);
		a.put(6);
		a.put(3);
		a.put(2);
		a.put(1);
		a.put(9);*/
		
		a.mehrfachPut (8, 7, 5, 4, 6, 3, 2, 1, 9);

		//a.printKnoten(a.wurzel);
		System.out.println ("Preorder:");
		a.printKnoten(a.wurzel);
		System.out.println();
		
		System.out.println ("Inorder:");
		a.printKnotenInorder(a.wurzel);
		System.out.println();

		System.out.println ("Postorder:");
		a.printKnotenPostorder(a.wurzel);
		System.out.println();
		
		
		/*a.loeschen(8);
		a.loeschen(5);*/
		a.mehrfachLoeschen(8, 5);
		//System.out.println("=================================");
		//a.printKnoten(a.wurzel);
		System.out.println ("Preorder:");
		a.printKnoten(a.wurzel);
		System.out.println();
		
		System.out.println ("Inorder:");
		a.printKnotenInorder(a.wurzel);
		System.out.println();
		
		System.out.println ("Postorder:");
		a.printKnotenPostorder(a.wurzel);
		System.out.println();
		
		//System.out.println ("Inorder:");
		//inord(a.wurzel);
	}
}
 

tanja

Mitglied
Das programm habe ich mit Scite geschrieben..es wird schon kompilieren, wenn ich aber auf f5 drücke, bekomme ich so ein meldung::
java.lang.NoSuchMethodError: main
Exception in thread "main" >Exit code: 1
und wenn ich in Dos-konsole den befehl java BKnoten eingebe bekomme ich dann:

Exception in thread "main" java.Lang.NoClassDefFoundError: BKnoten
Caused by: java.lang.ClassNotFoundException:BKnoten
at java.net.URLClassLoader$1.run<Unkown Source>
at java.security.AccesController.doPrivileged<Native Method>
at java.net.URLClassLoader.findClass<Unkown Source>
at java.lang.ClassLoader.loadClass<Unkown Source>
at sun.misc.Launcher$AppClassLoader.loadClass<Unkown Source>
at java.lang.Classloader.LoadClassl<unkown Source>
at java.lang.ClassLoader.loadClassInternal<Unkown Source>

Could not find the main class:BKnoten.Program will exit.


und wenn ich den befefl javac BKnoten eingebbe krieg ich dann:
Der befehl javac ist entweder falsch geschrieben oder konnte nicht gefunden werden.

woran kann des liegen?
 

Paddelpirat

Bekanntes Mitglied
und wenn ich den befefl javac BKnoten eingebbe krieg ich dann:
Der befehl javac ist entweder falsch geschrieben oder konnte nicht gefunden werden.

woran kann des liegen?

Also wenn das Problem noch aktuell sein sollte:
Anscheinend findet der die javac.exe nicht, d.h. du hast wohl nur das JRE in den Umgebungsvariablen (Path) eingetragen und nicht dein JDK (bis zum bin-Ordner).

Außerdem musst du javac BKnoten.java aufrufen.
 

eRaaaa

Top Contributor
Man man man...wie soll man da helfen?
Tippe doch einfach mal bitte die 2 Befehle ein, die ich als letztes gepostet habe! (und zwar aus dem Ordner heraus, in dem du dich vorher auch sonst immer befunden hast : java-muster)

Und poste dann nochmal (falls es dann überhaupt noch welche gibt) deine Fehlermeldungen ! (achja und achte auf Groß- Kleinschreibung. Das bSBaum kann ganz schon verwirren, vllt war auch einfach dort dein Fehler)

/edit: Oder handelt es sich hier sogar tatsächlich um eine innere Klasse? =>
Code:
javac BKnoten.java
java bSBaum
 
Zuletzt bearbeitet:

Ähnliche Java Themen

Neue Themen


Oben