如何清除此消息错误:在类中找不到主方法



我最近一直在开发这个Java游戏。我试图用音频剪辑添加音乐,但它不起作用,所以我取出了主目录中的代码并删除了主目录,因为我不再需要它了。所有的代码在我实现音乐之前都是一样的,但现在这个消息弹出了,不让我运行我的游戏:

错误:在类中找不到主方法com.illuminations.co.GoNerdGo.Enties.Obtacles,请定义main方法为:public static void main(String[]args)

当我试着把主杆放回时,它根本就跑不动!

如果有人能帮助我那就太好了!

这是我的代码:

Bully bully = new Bully();
Nerd nerd = new Nerd();
static BufferedImage[] sprites;
public static float x, y, velX = 5.5f, velY = 5.5f;
public static int whatObstacle = 5;
public static int basketBall = 6;
public static int lava = 2;
public static int trash = 1;
public static boolean trashOpen = false;
public Rectangle getBounds() {
    return null;
}
public Obstacles() {
    int width = 100;
    int height = 100;
    int columns = 2;
    int rows = 2;
    BufferedImage spriteSheet = null;
    try {
        spriteSheet = ImageIO.read(new File(
                "res/Images/ObstacleSpriteSheet.png"));
    } catch (IOException e) {
        e.printStackTrace();
    }
    sprites = new BufferedImage[rows * columns];
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < columns; j++) {
            sprites[(i * columns) + j] = spriteSheet.getSubimage(i * width,
                    j * height, width, height);
        }
    }
}
public void tick() {
    if (whatObstacle >= basketBall && Game.gos == null) {
        x += velX;
        y += velY;
    }
    if (x <= 0 || x >= 800 - 35) {
        velX *= -1;
    }
    if (y <= 425 || y >= 600 - 35) {
        velY *= -1;
    }
}
public void render(Graphics g) {
    if (whatObstacle >= basketBall) {
        // Displaying basketball
        g.drawImage(sprites[3], (int) x, (int) y, null);
        Rectangle basketballRect = new Rectangle((int) x, (int) y, 35, 35);
        if (nerd.getFeetBounds().intersects(basketballRect)) {
            Game.setOverGameState(Game.GameOverlayState.BullyWins);
        }
        if (bully.getFeetBounds().intersects(basketballRect)) {
            Game.setOverGameState(Game.GameOverlayState.NerdWins);
        }
        // Displaying lava pool
    } else if (whatObstacle >= lava) {
        g.drawImage(sprites[2], (int) x, (int) y, null);
        Rectangle lavaRect = new Rectangle((int) x + 5, (int) y + 7, 80, 19);
        if (nerd.getFeetBounds().intersects(lavaRect)) {
            Game.setOverGameState(Game.GameOverlayState.BullyWins);
        }
        if (bully.getFeetBounds().intersects(lavaRect)) {
            Game.setOverGameState(Game.GameOverlayState.NerdWins);
        }
        // Displaying trash can
    } else if (whatObstacle == trash) {
        if (trashOpen) {
            g.drawImage(sprites[1], (int) x, (int) y, null);
        } else {
            g.drawImage(sprites[0], (int) x, (int) y, null);
        }
        Rectangle trashRect = new Rectangle((int) x, (int) y, 60, 97);
        if (bully.getBounds().intersects(trashRect)) {
            Game.setOverGameState(Game.GameOverlayState.BullyWins);
            Obstacles.trashOpen = true;
        }
    }
}

在类中插入一个主方法-public static void main(String[] args)!当您运行一个Java程序时,输出仅为该方法中的输出。所以你总是需要它!

设置应用程序的入口点

如果您有一个绑定在JAR文件中的应用程序,那么您需要某种方式来指示JAR文件中哪个类是您的应用程序的入口点。您在清单中使用Main-Class标头提供此信息,该标头具有以下通用形式:

Main-Class: classname

classname是作为应用程序入口点的类的名称。

回想一下,入口点是一个具有签名为public static void main(String[] args)的方法的类。

老兄,如果您正在扩展Applet类,那么在声明类后,在注释中添加以下代码:

/*
<applet code = "class-name" width = 300 height = 200></applet>
*/

然后使用运行

appletviewer file-name.java

如果它正常扩展帧,则:

添加这样的方法:

public static void main(String argsp[])
{
new Constructor();
}

它会起作用的。

相关内容

  • 没有找到相关文章

最新更新