无法找到或加载主类osx终端

时间:2017-06-11 00:52:21

标签: java macos terminal classpath

这个常见问题的答案都没有解决我的问题。

我有一个像这样的文件目录树

root
 |
 +--> com
        |
        +--> Game.java
        +--> Window.java

我编译了Game.javaWindow.java sucesffully,结果树就像这样

root
 |
 +--> com
        |
        +--> Game.java
        +--> Game.class
        +--> Window.java
        +--> Window.class

我将目录更改回root并从osx终端运行以下命令

  

java com.Game

我收到了以下错误

  

无法找到或加载主类

我不知道为什么,这是我的课程

Game.java

package com;

import java.awt.*;

public class Game extends Canvas implements Runnable {

    private static final long mSerialVersionUid = -240870510533527854L;

    public static final int WIDTH = 640, HEIGHT = WIDTH / 12 * 9;

    public Game(){

        new Window(WIDTH, HEIGHT, "Let's build a game!", this);
    }

    public synchronized void start(){

    }

    @Override
    public void run(){

    }

    public static void main(String[] args){


    }
}

Window.java

package com;

import java.awt.Canvas;
import javax.swing.JFrame;
import java.awt.Dimension;

public class Window extends Canvas {

    public Window(int width, int height, String title, Game game){

        JFrame frame = new JFrame(title);

        frame.setPreferredSize(new Dimension(width, height));
        frame.setMaximumSize(new Dimension(width, height));
        frame.setMinimumSize(new Dimension(width, height));

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(false);
        frame.setLocationRelativeTo(null);
        frame.add(game);
        frame.setVisible(true);
        game.start();
    }
}

1 个答案:

答案 0 :(得分:0)

这应该按预期工作 - 我在 macOS 10.12.4 上运行你的代码,它运行得很好;)

您可能拥有CLASSPATH 环境变量 - 没有当前目录! - 在你的shell中定义。如果是这种情况,请尝试改为:

java -cp . com.Game

顺便说一下,要实际显示您定义的窗口,请在Game方法中创建一个main对象:

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