无法找到主要 class

Unable to locate main class

由于我的命令提示信息是葡萄牙语,我不知道确切的词,但是当我尝试执行 java -cp 时。 我的文件,它说无法定位或执行主要class。我搜索过,但由于我完全不熟悉编程,所以到目前为止我知道这可能是类路径的问题。这是我的:

一个 ShooterGame.class 文件已经用 javac -cp . FILE 正确编译。但是当我执行 java -cp . CLASS 时,它会显示该消息。

我该如何解决这个问题?谢谢

编辑: 是的,目录中有一个ShooterGame.class。更具体地说,有一个名为 game 的文件夹。在此文件夹中,您可以找到我刚才提到的 class。这里有 4 个完整的 classes 我可以 post。如果您需要它们中的任何一个,请发表评论(尽管我认为问题出在我们正在谈论的 class 中)。

ShooterGame.java(没有package

import java.awt.*;
import java.awt.event.*;
import javax.imageio.ImageIO; 
import java.awt.Graphics;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.*;
import java.net.URL;
import java.io.IOException;
import java.awt.image.BufferedImage;
import java.awt.event.MouseEvent;
import game.input.InputHandler;
import game.player.Player;
import game.scenario.Block;

public class ShooterGame extends JFrame{
static int playerX=500;
static int playerY=520;

InputHandler input = new InputHandler(this);
public static Player player = new Player(playerX,playerY,50,50);
Block meteor = new Block(100,100,30,30);

public static void main(String[] args){
    ShooterGame game = new ShooterGame();
    game.run();
    System.exit(0);
}

static int windowWidth = 1300;
static int windowHeight = 600;
static int fps = 30;
static BufferedImage backBuffer = new BufferedImage(windowWidth, windowHeight, BufferedImage.TYPE_INT_RGB);

public void run(){
    boolean running = true;

    initialize();

    while(running){
        long time = System.currentTimeMillis();

        update();
        draw();

        time = (1000 / fps) - (System.currentTimeMillis() - time);

        if (time > 0) { 
            try{ 
                Thread.sleep(time); 
            } 
                catch(Exception e){}; 
        };
    }

}

public void initialize(){
    setTitle("--- Shooter Game ---");
    setSize(windowWidth, windowHeight);
    setResizable(false);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setVisible(true);
}

public void update(){
    player.update(input);
    meteor.update(0);
}

public void draw(){

    Graphics g = getGraphics(); 

    Graphics bbg = backBuffer.getGraphics(); 

    bbg.setColor(Color.BLACK); 
    bbg.fillRect(0, 0, windowWidth, windowHeight); 
    player.Draw(bbg);
    meteor.Draw(bbg);

    g.drawImage(backBuffer, 0, 0, this); 
}
}

根据你的代码和评论,我相信你需要

java -cp game ShooterGame

game 文件夹就是您的 ShooterGame.class 所在的位置。所以你也可以

cd game
java -cp . ShooterGame

现在,如果 ShooterGamegame 包中;那么就是

java -cp . game.ShooterGame

然后您将指向包含 game 的文件夹。