2016-04-21 4 views
1

Ich versuche, ein Programm zu starten (das übrigens nicht meins ist und versuche, es als eine Möglichkeit zu verstehen, grundlegendes Java als Anfänger zu lernen), aber ich bekomme einen Fehler von Eclipse, der besagt:Warum erhalte ich einen Fehler, wenn die Hauptmethode beim Ausführen eines Beispielprogramms nicht gefunden wird?

Error: Main method not found in class Door, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application

Noch sehe ich public static void main(String[] args) drin? Ich erstellte zuerst ein Java-Projekt mit dem Projektnamen 'Door', wählte 'Eine Ausführungsumgebung verwenden JRE: JavaSE-1.8' und wählte 'Projektordner als Root für Quellen und Klassendateien verwenden'. Dann habe ich eine Java-Klasse mit dem Source-Ordner und dem Namen "Door" erstellt und ich habe public als Modifier ausgewählt und es wurden keine Method-Studs ausgewählt. Wähle ich die falschen Optionen?

Der Code:

import java.awt.*; 
import javax.swing.*; 
import java.util.*; 
import java.io.*; 
import java.awt.event.*; 
import java.util.Scanner; 

public class TestDoor 
{ 
static Door Door1; 
static Door Door2; 
static Door Door3; 

static Scanner input=new Scanner(System.in); 

public static void main(String[] args) 
{ 
    Door1=new Door("Enter"); 
    Door2=new Door("Exit"); 
    Door3=new Door("Treasure"); 

    Door1.setOpen(); 
    Door1.setUnlocked(); 
    Door3.setOpen(); 

    boolean done = false; 
    int choice; 

    do 
    { 
     chooseDoor(); 
     choice = input.nextInt(); 

     switch(choice) 
     { 
      case 1: 
       DOOR1(); 
       break; 
      case 2: 
       DOOR2(); 
       break; 
      case 3: 
       DOOR3(); 
       break; 
      case 4: 
       System.out.println("\n\n---------- Door Status ----------\n"); 

       if(Door1.isLocked()==true) 
       { 
        System.out.print("ENTER door is LOCKED and "); 
       } 

       else 
       { 
        System.out.print("ENTER door is UNLOCKED and "); 
       } 

       if(Door1.isClosed()==true) 
       { 
        System.out.print("CLOSED\n\n"); 
       } 

       else 
       { 
        System.out.print("OPEN\n\n"); 
       } 

       if(Door2.isLocked()==true) 
       { 
        System.out.print("EXIT door is LOCKED and "); 
       } 

       else 
       { 
        System.out.print("EXIT door is UNLOCKED and "); 
       } 

       if(Door2.isClosed()==true) 
       { 
        System.out.print("CLOSED\n\n"); 
       } 

       else 
       { 
        System.out.print("OPEN\n\n"); 
       } 

       if(Door3.isLocked()==true) 
       { 
        System.out.print("TREASURE door is LOCKED and "); 
       } 

       else 
       { 
        System.out.print("TREASURE door is UNLOCKED and "); 
       } 

       if(Door3.isClosed()==true) 
       { 
        System.out.print("CLOSED\n\n"); 
       } 

       else 
       { 
        System.out.printf("OPEN\n\n"); 
       } 

       System.out.println("---------- Door Status ----------\n"); 
       break; 
      default: 
       System.out.println("<<<< Out of choice range select again >>>>\n"); 
      } 

    }while(!done); 
} 

public static void Choices() 
{ 
    System.out.println("\n--------- choices ---------\n\n"); 
    System.out.println("1. OPEN door"); 
    System.out.println("2. CLOSE door"); 
    System.out.println("3. LOCK door"); 
    System.out.println("4. UNLOCK door"); 
    System.out.println("5. Check current door status"); 
    System.out.println("6. Go Back to choose another door"); 
    System.out.print("\n\nEnter Choice: "); 
} 

public static void chooseDoor() 
{ 
    System.out.println("\n\n--------- Choose Your Door --------\n\n"); 
    System.out.println("1. Enter door"); 
    System.out.println("2. Exit door"); 
    System.out.println("3. Treasure door"); 
    System.out.println("4. All Door Statuses"); 
    System.out.print("\n\nEnter Choice: "); 
} 

public static void DOOR1() 
{ 
    int choice; 
    boolean done = false; 
    do 
    { 
     Choices(); 
     choice=input.nextInt(); 

     /*for(int i=0;i<6;i++) 
     { 
      System.out.println(); 
     }*/ 

     switch(choice) 
     { 
      case 1: 
       Door1.open(); 
       break; 
      case 2: 
       Door1.close(); 
       break; 
      case 3: 
       Door1.lock(); 
       break; 
      case 4: 
       Door1.unlock(); 
       break; 
      case 5: 
       if(Door1.isLocked()==true) 
       { 
        System.out.println("---------- The ENTER Door Status ----------\n"); 
        System.out.print("Door is LOCKED and "); 
       } 
       else 
       { 
        System.out.println("---------- The ENTER Door Status ----------\n"); 
        System.out.print("Door is UNLOCKED and "); 
       } 
       if(Door1.isClosed()==true) 
       { 
        System.out.print("CLOSED\n\n"); 
        System.out.println("---------- The ENTER Door Status ----------\n"); 
       } 
       else 
       { 
        System.out.printf("OPEN\n\n"); 
        System.out.println("---------- The ENTER Door Status ----------\n"); 
       } 
       break; 
      case 6: 
       done = true; 
       break; 
      default: 
       System.out.print("<<<< Out of choice range select again >>>>\n"); 
      } 
    }while(!done); 
} 

public static void DOOR2() 
{ 
    int choice; 
    boolean done = false; 

    do 
    { 
     Choices(); 
     choice=input.nextInt(); 

      /*for(int i=0;i<6;i++) 
      { 
       System.out.println(); 
      }*/ 
     switch(choice) 
     { 
      case 1: 
       Door2.open(); 
       break; 
      case 2: 
       Door2.close(); 
       break; 
      case 3: 
       Door2.lock(); 
       break; 
      case 4: 
       Door2.unlock(); 
       break; 
      case 5: 
       if(Door2.isLocked()==true) 
       { 
        System.out.println("---------- The EXIT Door Status ----------\n"); 
        System.out.print("Door is LOCKED and "); 
       } 
       else 
       { 
        System.out.println("---------- The EXIT Door Status ----------\n"); 
        System.out.print("Door is UNLOCKED and "); 
       } 
       if(Door2.isClosed()==true) 
       { 
        System.out.print("CLOSED\n\n"); 
        System.out.println("---------- The EXIT Door Status ----------\n"); 
       } 
       else 
       { 
        System.out.printf("OPEN\n\n"); 
        System.out.println("---------- The EXIT Door Status ----------\n"); 
       } 
       break; 
      case 6: 
       done = true; 
       break; 
      default: 
       System.out.print("<<<< Out of choice range select again >>>>\n"); 
     } 
    }while(!done); 
} 

public static void DOOR3() 
{ 
    int choice; 
    boolean done = false; 

      do 
      { 
       Choices(); 
       choice=input.nextInt(); 

       /*for(int i=0;i<6;i++) 
       { 
        System.out.println(); 
       }*/ 

       switch(choice) 
       { 
        case 1: 
         Door3.open(); 
         break; 
        case 2: 
         Door3.close(); 
         break; 
        case 3: 
         Door3.lock(); 
         break; 
        case 4: 
         Door3.unlock(); 
         break; 
        case 5: 
         if(Door3.isLocked()==true) 
         { 
          System.out.println("---------- The TREASURE Door Status ----------\n"); 
          System.out.print("Door is LOCKED and "); 
         } 
         else 
         { 
          System.out.println("---------- The TREASURE Door Status ----------\n"); 
          System.out.print("Door is UNLOCKED and "); 
         } 
         if(Door3.isClosed()==true) 
         { 
          System.out.print("CLOSED\n\n"); 
          System.out.println("---------- The TREASURE Door Status ----------\n"); 
         } 
         else 
         { 
          System.out.printf("OPEN\n\n"); 
          System.out.println("---------- The TREASURE Door Status ----------\n"); 
         } 
         break; 
        case 6: 
         done = true; 
         break; 
        default: 
         System.out.print("<<<< Out of choice range select again >>>>\n"); 
       } 
      }while(!done); 
} 
} 
+1

Code, den Sie geschrieben haben, ist für die Klasse 'TestDoor', nicht' Door'. –

+0

Entschuldigung, ich meinte TestDoor für die Projekt-/Dateibenennung. – user5491858

+0

Wie lautet Ihr Java-Dateiname? –

Antwort

1

Nun sieht aus wie Sie ein unvollständiges Beispiel kopiert haben. Die von Ihnen gepostete Klasse verwendet Objekte der Klasse Door, die nicht vorhanden sind! Suchen Sie nach anderen Snippets an der Quelle, von der Sie kopiert haben. Es gibt keine Door Klasse hier.

1

Die Klasse Door sollte eine Hauptmethode haben. Sie haben diese Klasse nicht veröffentlicht, daher können wir sie nicht betrachten, aber Ihr Problem sollte gelöst werden, wenn Sie eine Hauptmethode innerhalb von Door definieren.

1

Manchmal kann dieser Fehler von Buildpfadproblemen stammen. Wenn Sie JavaFX in Ihrem Programm oder einer anderen Bibliothek verwenden, vergewissern Sie sich, dass Sie die JAR-Dateien ordnungsgemäß zum Erstellungspfad hinzugefügt haben. Klicken Sie dazu mit der rechten Maustaste auf das Projekt -> Eigenschaften -> Pfad erstellen -> Externes Gefäß hinzufügen.

Auch, wenn Sie wollen immer wissen, welche Art von Problem, das Sie auf Ihrem Projekt haben, würde ich vorschlagen, einen Blick auf die Probleme Blick zu nehmen. Wenn es in Ihrem Eclipse nicht aktiviert ist, können Sie es einfach sichtbar machen, indem Sie in Fenster -> Ansicht gehen.

Verwandte Themen