2013-07-31 6 views
0
Error: main method not found in class essence.Game, please define the main method as: public static void main(String[] args) 

Le code:Erreur: Méthode principale non trouvée

package essence; 

import static org.lwjgl.opengl.GL11.*; 

import java.util.List; 
import java.util.ArrayList; 
import java.util.Random; 

import org.lwjgl.input.*; 
import org.lwjgl.opengl.*; 
import org.lwjgl.*; 

public class Game{ 

    List<Box> shapes = new ArrayList<Box>(16); 

    public Game(){ 
     try { 
      Display.setDisplayMode(new DisplayMode(800,600)); 
      Display.setTitle("Essence"); 
      Display.create(); 
     } catch (LWJGLException e){ 
      e.printStackTrace(); 
     } 

     shapes.add(new Box(15, 15)); 
     shapes.add(new Box(100, 150)); 

     glMatrixMode(GL_PROJECTION); 
     glLoadIdentity(); 
     glOrtho(0, 800, 600, 0, 1, -1); 
     glMatrixMode(GL_MODELVIEW); 

     while(!Display.isCloseRequested()){ 

      glClear(GL_COLOR_BUFFER_BIT); 

      if(Keyboard.isKeyDown(Keyboard.KEY_ESCAPE)){ 
       Display.destroy(); 
       System.exit(0); 
      } 

      for (Box box : shapes) { 
       box.draw(); 
      } 

      Display.update(); 
      Display.sync(60); 
     } 
     Display.destroy(); 
    } 

    private static class Box { 
     public boolean selected = false; 
     public int x, y; 
     private float colorRed, colorBlue, colorGreen; 

     Box (int x, int y){ 
      this.x = x; 
      this.y = y; 

      Random randomGenerator = new Random(); 

      colorRed = randomGenerator.nextFloat(); 
      colorBlue = randomGenerator.nextFloat(); 
      colorGreen = randomGenerator.nextFloat(); 
     } 

     boolean inBounds(int mouseX, int mouseY){ 
      if(mouseX > x && mouseX < x + 50 && mouseY > y && mouseY < y + 50) 
       return true; 
      else 
       return false; 
     } 

     void randomizeColors(){ 
      Random randomGenerator = new Random(); 

      colorRed = randomGenerator.nextFloat(); 
      colorBlue = randomGenerator.nextFloat(); 
      colorGreen = randomGenerator.nextFloat(); 
     } 

     void update(int dx, int dy){ 
      x += dx; 
      y += dy; 
     } 

     void draw(){ 
      glColor3f(colorRed, colorGreen, colorBlue); 

      glBegin(GL_QUADS); 
      glVertex2f(x, y); 
      glVertex2f(x + 50, y); 
      glVertex2f(x + 50, y + 50); 
      glVertex2f(x, y + 50); 
      glEnd(); 
     } 

    } 
    public static void main(String[] args) { 
      new Game(); 
    } 
} 

Maintenant, disons que je change à:

package essence; 

public class Game{ 

    public static void main(String[] args) { 

    } 
} 

Il sera toujours donner la même erreur. J'ai vérifié la mise en page du dossier, mais je confirme que son Eclipse\Data\workspace\Essence\src\essence et Eclipse\Data\workspace\Essence\bin\essence

Il ne peut pas être mon installation Java, parce que tous mes autres projets fonctionnent bien. Voici une capture d'écran du projet dans Eclipse:

http://gyazo.com/296d53b33fa2619ca300c8a896d097dc

Quelle pourrait être la cause de cette erreur et la façon de le réparer?

+0

Essayez 'ctrl + F11'. –

+0

Où et comment essayez-vous de l'exécuter? –

+0

essayez d'ajouter une erreur de syntaxe délibérée à votre classe et refaire votre compilation/invocation. Je parie que vous n'obtiendrez pas un message d'erreur de syntaxe du compilateur. Cela signifie que votre environnement récupère une ancienne version de la classe compilée située ailleurs sur votre système. –

Répondre

0

Ça m'arrive aussi. Redémarrer le compilateur résoudre le problème. Par exemple, si vous exécutez Eclipse, redémarrez simplement Eclipse.

Questions connexes