nosuchmethoderror

Status
Nicht offen für weitere Antworten.

wurmi86

Mitglied
Hallo werte Java Freunde. Ich habe ein kleines Problem mit einer Fehlermeldung, die ich mir nicht erklären kann:
Exception in thread "main" java.lang.NoSuchMethodError: main.
Habe schon nach gegoogelt, im forum hier gesucht aber alles was ich lese ist den public classennamen als dateinamen benutzen und eine main methode. Beides habe ich aber und trotzdem tritt der fehler auf. Compilieren lässt es sich fehlerfrei. Bei der Ausführung kommt die Meldung.

Java:
 public class Artikel{
  protected int aktAnzahl,minAnzahl,mwst,nettopreis;
  protected String name;

  public Artikel(String name, int aktAnzahl, int minAnzahl, int mwst, int nettopreis){
    this.name = name;
    this.aktAnzahl = aktAnzahl;
    this.minAnzahl = minAnzahl;
    this.nettopreis = nettopreis;
    this.mwst = mwst;
  }
  public void print(){
    System.out.println("Artikel: "+this.name+" "+this.aktAnzahl+" "+this.minAnzahl+" "+this.nettopreis);
  }
}

class Buch extends Artikel{
   String Autor;
 // protected int aktAnzahl,minAnzahl;
 // protected String name;
 // protected float nettopreis;
  //protected int mwst = 7;
  Buch(String Autor,String name,int aktAnzahl,int minAnzahl,int mwst,int nettopreis){
    super(name,aktAnzahl,minAnzahl,mwst,nettopreis);
    this.Autor = Autor;
  }
  public void print(){
    System.out.println("Artikel: "+name+" "+aktAnzahl+" "+minAnzahl+" "+nettopreis);
  }
}


class Testprogramm{

public static void printArtikel(Artikel [] arts) {
   System.out.println("Artikelliste:");
   for (int i = 0; i < arts.length; i++) {
     arts[i].print(); System.out.println();
   }
}
//  System.out.println("\nBestellung:");
//  for (int i = 0; i < arts.length; i++) {
 //   arts[i].printBestellung(); System.out.println();
 // }

 public void main(String[] args){

   Artikel [] arts = new Artikel[0];
     arts[0]=new Artikel("CANON",42,5,7,49);
      Testprogramm.printArtikel(arts);

 }
}
Ich hoffe mir kann geholfen werden. Danke schonmal im vorraus.
Ps: verwende Javaeditor 9.11

Wurmi
 
Zuletzt bearbeitet:

wurmi86

Mitglied
und nebenbei etwas anderes. wie lasse ich den code richtig in den forum beiträgen darstellen? Alles linksbündig is sehr unschön.
 
M

maki

Gast
und nebenbei etwas anderes. wie lasse ich den code richtig in den forum beiträgen darstellen?
Wir haben
Java:
 Tags für Java Code, [html] für HTML Code, [xml] für xml und [code] für alles andere inkl. Stacktraces.
 
S

Spacerat

Gast
Da fällt gerade jemand mit dem JavaEditor mitten aufs Gesicht :). Die Exception die dort geworfen wird ist schlicht weg falsch! Denn bevor es zu dieser kommen kann, steht dort erstmal eine ArrayIndexOutOfBoundsException an. Hier:[highlight=java]Artikel [] arts = new Artikel[0];
arts[0]=new Artikel("CANON",42,5,7,49);[/highlight] und dann sollte eine NullPointerException folgen. Hier:[highlight=java]arts.print();[/highlight]Was der Editor da macht lässt sich nur erahnen: <null> hat eben keine Methode "print()" :lol:
Versuch mal statt "new Artikel[0]", "new Artikel[1];"
@Edit: Und wo es die anderen grad' erwähnen: Deine Main-Methode muss statisch (static) und die Testklasse public sein. Ist mir gar nicht aufgefallen.
 
Zuletzt bearbeitet von einem Moderator:
M

maki

Gast
Dir fehlt die main Methode, der Einstiegspunkt für das Programm.

Lau Konvention muss sie folgernmassen aussehen:
Java:
    public static void main(String[] args) {
        // dein code
    }
Wenn du etwas weglässt (wie zB. static) ist es nicht mehr die main Methode ;)
 
S

SlaterB

Gast
dei main-Methode muss in die Klasse rein, die public ist und wie die Datei heißt
 

wurmi86

Mitglied
et voilla! Danke an maki, SlaterB und Spacerat. Fast schon peinlich so ein static zu vergessen. :D

Btw. Gibt es vergleichbar gute Java Editoren, die etwas taugen, übersichtlich sind und nicht zu viele extras haben. Eclipse z.B. ist mir übertrieben vollgestopft mit lauter zeug, adss ich wohl nie benutzten werde.

Gruss Wurmi
 
S

SlaterB

Gast
hast du begrenzten Festplatten-Platz oder inwiefern stört dich das? ;)
 

wurmi86

Mitglied
das ist eher eine chronische ja-kein-buchstabe-zuviel-tippen-krankheit.
hab das studienfach gewechselt und wurde in ein höheres fachsemester eingestuft. jetzt muss ich auf kommando losprogrammieren und hab aber seit zwei jahren keine zeile mehr gecodet. aber ich denk das findet sich wieder =)
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben