这是我第一次在Java中使用包,我不知道我哪里出错了。我正在尝试制作俄罗斯方 block 游戏。这是我的代码的一部分:
package mytetris;
import javax.swing.*;
import java.awt.*;
public class Tetris extends JFrame {
// class constructor
public Tetris() {
super("Tetris");
this.setSize(400, 600);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
// just started, haven't really done anything
this.setVisible(true);
}
public static void main(String[] args) {
Tetris myTetris = new Tetris();
}
}
然后我使用 javac Tetris.java
编译它,然后我尝试使用 java Tetris
运行它,这是终端给我的:
Exception in thread "main" java.lang.NoClassDefFoundError: Tetris (wrong name: mytetris/Tetris)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
最佳答案
假设您的文件位于/home/mytetris/Tetris.java
然后您需要在目录 home 中运行“java mytetris.Tetris”。
因为你指定了包mytetris,所以它会去mytetris目录中查找你的文件,在那里它会找到类Tetris。
关于java - Java 中的包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21196120/