Fehlermeldung NoSuchMethodError...



  • Habe folgendes kleines Programm geschrieben. Beim Ausführen erhalte ich folgende Fehlermeldung:

    Exception in thread "main" java.lang.NoSuchMethodError: main
    

    Wer kann mir weiterhelfen?

    // Datei PackDemo.java
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    public class PackDemo {
    	public static void main( String[] args ) {
    		PackFrame frm = new PackFrame(
    			"Pack Demo" 
    		);
    
    		frm.setVisible( true );
    		frm.pack();
    	}
    }
    
    class PackFrame extends JFrame {
    	public PackFrame( String title ) {
    		super ( title );
    
    		addWindowListener(
    			new WindowAdapter() {
    				public void windowClosing(
    					WindowEvent ev
    				) {
    					System.exit( 0 );
    				}
    			}
    		);
    
    		Container cp = getContentPane();
    
    		JButton btn = new JButton( "Klick me" );
    		cp.add( btn );
    
    		setSize( 400, 400 );
    	}
    }
    


  • Hi

    wie dei fehlermeldung schon sagt Methode Main nicht gefunden.

    heist. du versuchst mit java eine classe auszufürhen, die keine statische Main methode enthält und daher nicht ausführbar ist.

    lösung:

    Eine Main Methode einbinden
    z.B. so

    class ...
    {
    
      public static main(String[] args)
      {
        PackFrame pf = new PackFrame ("Mein Titel");  // instanz des frames anlegen
    
        pf.setVisible(true); // und frame sichbar machen.
      }
    }
    

    die main lässt sich auch in eine andere klasse auslagern.

    Viels spass mit swing
    Termite



  • ups übersesen das er ja ne main hat.

    sieht eigenlich ganz gut aus. wie rufst du die klasse auf? bzw mit welcher umgebung arbeitest du?

    ggf mal die beiden klassen trennen und in seperaten dateien speichern. Name der Datei = name der klasse. (grosskleinschreibung beachten)

    gruss Termite

    (ist mal wieder zeit fürs wochenende. werd schon wieder schusselig und überlies die hälfte)



  • Hab die Klassen in einer eigenen Datei abgespeichert. Jetzt funktionierts, danke.



  • heine789 schrieb:

    Hab die Klassen in einer eigenen Datei abgespeichert. Jetzt funktionierts, danke.

    wenn du jede klasse in einer separaten datei abspeicherst, musst du sie public deklarieren. so wie oben hätte es doch gehen sollen - wenn sie in der gleichen datei gespeichert sind und die datei so heisst wie die klasse, die public ist (es kann nur eine klasse pro datei pubic deklariert sein).


Anmelden zum Antworten