无法找到主类

时间:2015-01-07 02:33:50

标签: java classpath

由于我的命令提示符消息是葡萄牙语,我不知道确切的单词,但是当我尝试执行 java -cp时。 我的文件 ,它说它无法找到或执行主类。我已经搜索了,但由于我是编程新手,到目前为止我知道它可能是Classpath的一个问题。这就是我所拥有的:

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

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

编辑: 是的,目录中有一个ShooterGame.class。更具体地说,有一个名为 game 的文件夹。在这个文件夹里,你找到我刚才提到的课程。我可以在这里发布4个完整的课程。评论你是否需要其中任何一个(虽然我认为这个问题出在我们讨论的这个课程中)。

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); 
}
}

1 个答案:

答案 0 :(得分:0)

根据您的代码和评论,我认为您需要

java -cp game ShooterGame

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

cd game
java -cp . ShooterGame

现在,如果ShooterGame包含在game中;那就是

java -cp . game.ShooterGame

您会指向包含game的文件夹。