Wohin mit der Main-Methode? HILFE! ("Exception in thr.)

Status
Nicht offen für weitere Antworten.

bugatti_1001

Mitglied
Also habe hier folgenden Quellcode für das Spiel Drei-Gewinnt:

Wenn ich es starten will, kommt die Fehlermeldung:

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

WOHIN ALSO MIT DER MAIN-METHODE SO DAS DAS PROGRAMM LÄUFT???

Vielen Dank für die Hilfe!!


Code:
import java.io.*; // wird von der Eingabe benötigt
 
public class Spielfeld {
    //Eigenschaften
    private Kaestchen[][] feld;
    private static BufferedReader in; // Eingabe
    
    //Konstruktor
    
    public Spielfeld() {
        feld = new Kaestchen[3][3];
        for (int i=0;i<3;i++){// senkrecht
            for (int j=0;j<3;j++){// waagerecht
                feld[j][i]=new Kaestchen();
            }
        }
        
        // Vorbereitung für die Eingabe
        in = new BufferedReader(new InputStreamReader(System.in));
                              
    }
    
    //Methoden
    public void setzeSpielstein(int x, int y, String stein){
        feld[x][y].setzeStein(stein);
    }
    
    public void gibSpielAus(){
        System.out.println("\n  012");
        for (int i=0;i<3;i++){
            System.out.print(i+" ");
            for (int j=0;j<3;j++){
                System.out.print(feld[j][i].getZeichen());
            }
            System.out.println(); // Zeilenumbruch nach 3 Kaestchen
        }
        
    }
    
    public void spieleEineRunde(){
        // unguenstig: Starre Anzahl von Zügen, immer 10 Züge
        int x,y;
        for (int i=1;i<5;i++){
            gibSpielAus();
            System.out.print("Spieler X bitte die x-Koordinate (0-2)");
            try {
            x=liesInt();
            }
             catch(IOException e) {
            x=-1;
            }
            System.out.print("Spieler X bitte die y-Koordinate (0-2)");
            try {
            y=liesInt();
            }
            catch(IOException e) {
            y=-1;
            }
            setzeSpielstein(x, y, "X");
            gibSpielAus();
            System.out.print("Spieler O bitte die x-Koordinate (0-2)");
            try {
            x=liesInt();
            }
             catch(IOException e) {
            x=-1;
            }
            System.out.print("Spieler O bitte die y-Koordinate (0-2)");
            try {
            y=liesInt();
            }
            catch(IOException e) {
            y=-1;
            }            
            setzeSpielstein(x, y, "O");
        }
    }
    
    // Methode für die Eingabe
    // Mehr hier: [url]http://www.wifo.uni-mannheim.de/Java/oop/OOPinJava/kapitel11/StandardEingabe_java.html[/url]
    public int liesInt() throws IOException {
        try {
        return Integer.parseInt(in.readLine());
        }
        catch(IOException e) {
          return (-1);
        }
    }


...und


Code:
public class Kaestchen {
    String zeichen;
    
    public Kaestchen() {
        zeichen=" "; // Am Anfang leer
    }
    
    public void setzeStein(String pZeichen) {
        if (!zeichen.equals(" ")) {System.out.println("Besetzt!");} 
        else {
            if (pZeichen.equals("X") || pZeichen.equals("O")) {zeichen=pZeichen;} 
            else System.out.println("Ungueltige Eingabe, bitte X oder O waehlen!");
        }
    }
    
    public String getZeichen(){
        return zeichen;
    }
}
 

bugatti_1001

Mitglied
also in etwa so....???:


Code:
public class Start {

	public static void main (String [] args) {	
	
	
		Spielfeld anfang = new Spielfeld();
		anfang.Spielfeld();

	}
}
 

bugatti_1001

Mitglied
Meine Start-Datei sieht aus wie oben.
Ich erstelle ein Objekt "anfang" der Klasse Spielfeld mit der ich die Methode "Spielfeld()" aufrufen will...

Hab ich was vergessen, oder warum klappt es nicht??? :-(

Jedenfalls lässt sich die "public class Start" nicht kompilieren.

Was mache ich falsch??
 
S

SlaterB

Gast
> Was mache ich falsch??

nennst die Fehlermeldung nicht..

jedenfalls gibt es keine Operation Spielfed() in der Klasse Spielfeld,
daher ist anfang.Spielfeld(); kein sinnvoller Java-Code,
daher gehts nicht
 
B

bygones

Gast
Slater, ich hab n Auto, da gibts n Zuendschloss... das geht aber einfach nicht... was mache ich falsch ??

1. regel ist immer - wenn etwas nicht laeuft, dann sag bitte mit, was genau nicht geht, was meldet java und und und, erst dann kann geholfen werden.

Spielfeld() ist der Konstruktor, der nur beim instanzieren gebraucht wir
Code:
Spielfeld feld = new Spieldfeld();
 

*Hendrik

Bekanntes Mitglied
Schreib einfach die Main-Methode in Deine Spielfeld-Klasse:

Code:
    public static void main(String args[]) {
        Spielfeld spielfeld = new Spielfeld();
        spielfeld.spieleEineRunde();
    }
 
S

SlaterB

Gast
@deathbyaclown

hmm, ist da mein Name fälschlicherweise reingeruscht,
sprichst du nach, wie bugatti_1001 mich angeredet hat (hat er gar nicht)
oder meinst du ich hätte sofort verraten sollen, dass man den Konstruktor nicht zweimal aufruft? ???:L :wink:
 

bugatti_1001

Mitglied
Vielen Dank erstmal für die Hilfe!!

So , habe jetzt wie beschrieben, die main-Methode in den code eingefügt:


Code:
import java.io.*; // wird von der Eingabe benötigt

public class Spielfeld {
    //Eigenschaften
    private Kaestchen[][] feld;
    private static BufferedReader in; // Eingabe
    
    
    public static void main(String args[]) { 
        Spielfeld spielfeld = new Spielfeld(); 
        spielfeld.spieleEineRunde(); 
    }
    
    
    //Konstruktor
    
    public Spielfeld() {
        feld = new Kaestchen[3][3];
        for (int i=0;i<3;i++){// senkrecht
            for (int j=0;j<3;j++){// waagerecht
                feld[j][i]=new Kaestchen();
            }
        }
        
        // Vorbereitung für die Eingabe
        in = new BufferedReader(new InputStreamReader(System.in));
                              
    }
    
    //Methoden
    public void setzeSpielstein(int x, int y, String stein){
        feld[x][y].setzeStein(stein);
    }
    
    public void gibSpielAus(){
        System.out.println("\n  012");
        for (int i=0;i<3;i++){
            System.out.print(i+" ");
            for (int j=0;j<3;j++){
                System.out.print(feld[j][i].getZeichen());
            }
            System.out.println(); // Zeilenumbruch nach 3 Kaestchen
        }
        
    }
    
    public void spieleEineRunde(){
        // unguenstig: Starre Anzahl von Zügen, immer 10 Züge
        int x,y;
        for (int i=1;i<5;i++){
            gibSpielAus();
            System.out.print("Spieler X bitte die x-Koordinate (0-2)");
            try {
            x=liesInt();
            }
             catch(IOException e) {
            x=-1;
            }
            System.out.print("Spieler X bitte die y-Koordinate (0-2)");
            try {
            y=liesInt();
            }
            catch(IOException e) {
            y=-1;
            }
            setzeSpielstein(x, y, "X");
            gibSpielAus();
            System.out.print("Spieler O bitte die x-Koordinate (0-2)");
            try {
            x=liesInt();
            }
             catch(IOException e) {
            x=-1;
            }
            System.out.print("Spieler O bitte die y-Koordinate (0-2)");
            try {
            y=liesInt();
            }
            catch(IOException e) {
            y=-1;
            }            
            setzeSpielstein(x, y, "O");
        }
    }
    
    // Methode für die Eingabe
    public int liesInt() throws IOException {
        try {
        return Integer.parseInt(in.readLine());
        }
        catch(IOException e) {
          return (-1);
        }
    }


Wenn ich es nun kompilieren will, heisst es:

"Spielfeld.java:94: reached end of file while parsing"


Was bedeutet eigentlich "public Spielfeld()", Zeile 17? Ist das eine Methode oder nicht (wegen den Klammern)??
 

bugatti_1001

Mitglied
VIEEEELEN DANK AN EUCH ALLE!!! BIG PROBS!!

Super, lässt sich kompilieren und starten...

werde mich jetzt ans fein-tuning machen, dass z.b nur bestimmte eingaben erlaubt sind wie zb. zahlen NUR zwischen 0 und 2.

Aber wie gesagt, erstmal THANKS A LOT!!!


greetz
 

bugatti_1001

Mitglied
tchuldige!

kann ich statt "BufferedReader in;", Zeile 6 auch "Tools.intEingabe();" verwenden???

Code:
import java.io.*; // wird von der Eingabe benötigt

public class Spielfeld {
    //Eigenschaften
    private Kaestchen[][] feld;
    private static BufferedReader in; // Eingabe
    
    
    public static void main(String args[]) { 
        Spielfeld spielfeld = new Spielfeld(); 
        spielfeld.spieleEineRunde(); 
    }
    
    
    //Konstruktor
    
    public Spielfeld() {
        feld = new Kaestchen[3][3];
        for (int i=0;i<3;i++){// senkrecht
            for (int j=0;j<3;j++){// waagerecht
                feld[j][i]=new Kaestchen();
            }
        }
        
        // Vorbereitung für die Eingabe
        in = new BufferedReader(new InputStreamReader(System.in));
                              
    }
    
    //Methoden
    public void setzeSpielstein(int x, int y, String stein){
        feld[x][y].setzeStein(stein);
    }
    
    public void gibSpielAus(){
        System.out.println("\n  012");
        for (int i=0;i<3;i++){
            System.out.print(i+" ");
            for (int j=0;j<3;j++){
                System.out.print(feld[j][i].getZeichen());
            }
            System.out.println(); // Zeilenumbruch nach 3 Kaestchen
        }
        
    }
    
    public void spieleEineRunde(){
        // unguenstig: Starre Anzahl von Zügen, immer 10 Züge
        int x,y;
        for (int i=1;i<5;i++){
            gibSpielAus();
            System.out.print("Spieler X bitte die x-Koordinate (0-2)");
            try {
            x=liesInt();
            }
             catch(IOException e) {
            x=-1;
            }
            System.out.print("Spieler X bitte die y-Koordinate (0-2)");
            try {
            y=liesInt();
            }
            catch(IOException e) {
            y=-1;
            }
            setzeSpielstein(x, y, "X");
            gibSpielAus();
            System.out.print("Spieler O bitte die x-Koordinate (0-2)");
            try {
            x=liesInt();
            }
             catch(IOException e) {
            x=-1;
            }
            System.out.print("Spieler O bitte die y-Koordinate (0-2)");
            try {
            y=liesInt();
            }
            catch(IOException e) {
            y=-1;
            }            
            setzeSpielstein(x, y, "O");
        }
    }
    
    // Methode für die Eingabe
    public int liesInt() throws IOException {
        try {
        return Integer.parseInt(in.readLine());
        }
        catch(IOException e) {
          return (-1);
        }
    }
}
 
S

SlaterB

Gast
private static BufferedReader in;

ist die Deklaration einer Variablen,
wie kann man denn diese Deklaration durch einen Operationsaufruf ersetzen?

wenn Tools.intEingabe(); ein entsprechendes Objekt zurückgibt,
könntest du
private static BufferedReader in = Tools.intEingabe();
schreiben,
was aber sehr seltsam aussieht, was ist denn Tools.intEingabe()?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A wohin mit der Main! Java Basics - Anfänger-Themen 2
S Wohin kommt das „abstract“? Vor oder nach „public“/ „private“ /... Java Basics - Anfänger-Themen 3
A Reader wohin werden Daten gespeichert? Java Basics - Anfänger-Themen 7
N Methoden Wohin mit einer Methode die in unterschiedlichen Klassen verwendet wird? Java Basics - Anfänger-Themen 5
N jpos.xml wohin damit? Java Basics - Anfänger-Themen 9
I Methoden Wohin gehört getImage()? Java Basics - Anfänger-Themen 1
nrg Wohin mit Factory Methoden? Java Basics - Anfänger-Themen 3
L Variable..aber wohin? Java Basics - Anfänger-Themen 16
L Externe Dateien, wohin? Java Basics - Anfänger-Themen 7
Hindi93 Neue Libs - wohin damit? Java Basics - Anfänger-Themen 7
F DocumentListener - Wohin damit? Java Basics - Anfänger-Themen 10
G Singelton Fabriken - Wohin mit getInstance? Java Basics - Anfänger-Themen 15
K Wohin gehört in Eclipse ein jpeg-Bild ? Java Basics - Anfänger-Themen 4
G Wohin mit Konstanten? Java Basics - Anfänger-Themen 12
G Wohin Datenbank speichern? Java Basics - Anfänger-Themen 4
P Import jar files: Wohin? Java Basics - Anfänger-Themen 2
G Wohin Gui - Code? Java Basics - Anfänger-Themen 5
M Wohin mit den JAVA Libraries (spring, jalopy etc.) ? Java Basics - Anfänger-Themen 2
P wohin muss ich die packages kopieren? Java Basics - Anfänger-Themen 12
F POI-Anfänger, wohin mit dem poi.jar Java Basics - Anfänger-Themen 4
B javax entpacken - aber wohin? Java Basics - Anfänger-Themen 2
P Main Methode scheint Constructor aufzurufen, ohne dass es so gecoded ist Java Basics - Anfänger-Themen 2
N Throw an Main Methode übergeben Java Basics - Anfänger-Themen 7
J Die statische Main-Methode ändert Instanzvariable? Java Basics - Anfänger-Themen 10
I Jetty starten von Programm (Main) Java Basics - Anfänger-Themen 27
Denix The public type Main must be defined in its own fileJava(16777541) Java Basics - Anfänger-Themen 13
D Array in Main Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
G jButton führt Main Methode nicht richtig aus Java Basics - Anfänger-Themen 3
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
C60 Methoden Main-Methode erkennt meine Arrays nicht. Java Basics - Anfänger-Themen 7
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
W Verschiedene Methoden in einer Klasse in der Main aufrufen? Java Basics - Anfänger-Themen 8
S Array über ein Ausgabemethode in main ausgeben Java Basics - Anfänger-Themen 31
C Kein Zugriff auf Klassenmethoden in Main Methode Java Basics - Anfänger-Themen 23
N Wozu nutzt man in der Main Methode das args Array? Java Basics - Anfänger-Themen 10
NaZuRe Geld(Wert) von der public static void main in die public static void Blackjack Java Basics - Anfänger-Themen 2
H Warum kann man keine Parameter in die main-Methode packen? Java Basics - Anfänger-Themen 4
J In main() Datei geöffnet, von anderer Funktion beschreiben Java Basics - Anfänger-Themen 3
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
KogoroMori21 Methode in der main ausgeben Java Basics - Anfänger-Themen 2
s_1895 zu viele Zeilen in der Main Methode Java Basics - Anfänger-Themen 4
C Methodenrückgabe wird in der main nicht berücksichtigt Java Basics - Anfänger-Themen 2
B Wie kann ich etwas vor der Main-Methode ausführen? Java Basics - Anfänger-Themen 21
K Übergabe des Wertes einer Variable aus main() in eine Klassenmethode Java Basics - Anfänger-Themen 8
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
T Main startet nicht bei vorgegebenen Code Java Basics - Anfänger-Themen 41
G main Methode Java Basics - Anfänger-Themen 5
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
1 main-Methode erweitern, Nachfrage nach wiedeholung Java Basics - Anfänger-Themen 2
J main methode Java Basics - Anfänger-Themen 1
B No Main Classes Found Java Basics - Anfänger-Themen 7
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
E Was kommt in ein Objekt und was in die Main Methode? Java Basics - Anfänger-Themen 8
D java main methode kann nicht kompiliert werden (Erstellen eines Objekts) Java Basics - Anfänger-Themen 6
M String außerhalb der main-Methode Java Basics - Anfänger-Themen 4
scratchy1 ArrayOutOfBoundException in main-Methode Java Basics - Anfänger-Themen 17
B File öffnen in src/main/webapp Java Basics - Anfänger-Themen 4
P Parameterübergabe, von Methode zu Methode zu main Java Basics - Anfänger-Themen 4
J Kapselung Array in Set ändern und in Main ausgeben lassen Java Basics - Anfänger-Themen 4
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
V Collections Objekte einer ArrayList in der main() ausgeben Java Basics - Anfänger-Themen 9
D Compiler-Fehler Aufrufen einer Methode von Main Java Basics - Anfänger-Themen 4
G Was als main Method Java Basics - Anfänger-Themen 6
M Methode mit Array als Parameter an Main übergeben Java Basics - Anfänger-Themen 1
W Exception in Main abfangen oder in der Methode? Java Basics - Anfänger-Themen 10
J Timer bauen, Main Methode immer wieder neu starten Java Basics - Anfänger-Themen 13
J Compiler-Fehler Java findet main Klasse nicht Java Basics - Anfänger-Themen 16
B Parameterübergabe in main Java Basics - Anfänger-Themen 1
A Variablen Main Klasse soll auf eine andere Klasse zugreifen Java Basics - Anfänger-Themen 3
I java.lang.ArrayIndexOutOfBoundsException at lösung.main Java Basics - Anfänger-Themen 3
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
J Frage zu: public static void main (String[]args) Java Basics - Anfänger-Themen 1
J Parameter in main verwenden Java Basics - Anfänger-Themen 3
M Methodenaufruf in der Main Datei funzt nicht Java Basics - Anfänger-Themen 13
M Maven Main-Methode Interface und Klasse Java Basics - Anfänger-Themen 2
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
G Instanzvariable in main-Methode verboten? Java Basics - Anfänger-Themen 3
M Objekt starten von der main-Methode Java Basics - Anfänger-Themen 1
S Fehler: Editor does not contain a main type Java Basics - Anfänger-Themen 3
G Programm wird nicht ausgeführt: Editor does not contain a main type Java Basics - Anfänger-Themen 10
A Methode aufrufen in main-Methode Java Basics - Anfänger-Themen 5
B Linux - Error: Could not find or load main class application.Main Java Basics - Anfänger-Themen 28
C Erste Schritte (Netbeans) no main classes found Java Basics - Anfänger-Themen 5
U Klassen IntelliJ14.1.1 Ultimate startet eine Main-Klasse NICHT MEHR Java Basics - Anfänger-Themen 0
P Methoden private int[] in main Java Basics - Anfänger-Themen 16
W JLabel in Main aus Thread verändern. Java Basics - Anfänger-Themen 4
AssELAss Klassen Java Klasse in main-methode ausführen Java Basics - Anfänger-Themen 7
R Methoden Nicht statische Methode aus Main aufrufen Java Basics - Anfänger-Themen 2
P could not find main class obwohl da Java Basics - Anfänger-Themen 17
J Methode in main-Methode aufrufen Java Basics - Anfänger-Themen 5
B OOP Wie benutze ich die Main Funktion richtig? Java Basics - Anfänger-Themen 10
M Klassen Main Methode in einer anderen Klasse aufrufen Java Basics - Anfänger-Themen 13
TheMenox Methoden Auslagerung von Code aus der "main" Methode sinnvoll? Java Basics - Anfänger-Themen 70
quecksilver if-Abfrage in main ausführen Java Basics - Anfänger-Themen 4
J Exception in thread "main" Java Basics - Anfänger-Themen 1
S Methode auf Main zugreifen Java Basics - Anfänger-Themen 5
D String aus Main in Klasse übergeben Java Basics - Anfänger-Themen 4
S Methoden main-Methode integrieren Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben