这个常见问题的答案都没有解决我的问题。
我有一个像这样的文件目录树
root
|
+--> com
|
+--> Game.java
+--> Window.java
我编译了Game.java
和Window.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();
}
}
答案 0 :(得分:0)
这应该按预期工作 - 我在 macOS 10.12.4 上运行你的代码,它运行得很好;)
您可能拥有CLASSPATH
环境变量 - 没有当前目录! - 在你的shell中定义。如果是这种情况,请尝试改为:
java -cp . com.Game
顺便说一下,要实际显示您定义的窗口,请在Game
方法中创建一个main
对象:
public static void main(String[] args) {
new Game();
}