2015-01-07 5 views
0

Поскольку мои сообщения командной строки находятся на португальском языке, я не знаю точных слов, но когда я пытаюсь выполнить java -cp. В моем файле говорится, что он не смог найти или выполнить основной класс. Я искал, но так как я новичок в программировании, до сих пор знаю, что это может быть проблемой с Classpath. Это то, что у меня есть:Не удается найти основной класс

Файл ShooterGame.class уже скомпилирован с javac -cp . FILE. Но когда я делаю java -cp . CLASS, он показывает это сообщение.

Как это исправить? Благодарю.

Редактировать: Да, в каталоге есть ShooterGame.class. Более конкретно, есть папка под названием игра. Внутри этой папки вы найдете класс, о котором я только что упомянул. Есть 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); 
} 
} 
+0

вы пытаетесь "ява -cp. ShooterGame" или "Java -cp. ShooterGame.class" – Jayan

+0

Правильный путь ("ява -cp. ShooterGame") – gabzerbinato

+2

Существует ли ShooterGame.class в текущем каталоге? Вы должны скопировать полное сообщение об ошибке на вопрос. – Jayan

ответ

0

на основе кода и комментариев, я считаю, нужно

java -cp game ShooterGame 

Папка game, где ваш ShooterGame.class есть. Таким образом, вы можете также

cd game 
java -cp . ShooterGame 

Теперь, если ShooterGame был в game пакете; то было бы

java -cp . game.ShooterGame 

И вы бы указать на папку, которая держит game.

+0

По-видимому, «cd-игра, java -cp. ShooterGame» работала, но она показывает «Исключение в потоке» main «java.lang.NoClassDefFoundError: game \ player \ Player». Папка игрока и Player.java являются частью моей игры. – gabzerbinato

+0

@gabzerbinato Переместите «ShooterGame.class» в одну папку или добавьте «пакетную игру» в 'ShooterGame.java' и перекомпилируйте. Или создайте новую папку 'game \ game' и переместите' game \ player' в 'game \ game \ player'. Почему вы положили 'ShooterGame.class' в' game', если бы вы не поместили его в пакет 'game'? –

+0

Я добавил «пакетную игру»; в ShooterGame.java и перекомпилировать его. Мой текущий каталог - _game_. Какую команду мне теперь использовать? "java -cp. ShootGame"? – gabzerbinato

Смежные вопросы