我仍然不清楚你的问题到底出在哪里。但我会告诉你要成功的步骤。
提示:除了我现在所描述的之外,还有很多替代方案。
我假设你的源文件为Map
and Field
没有任何包声明和导入声明。
您的项目的文件系统中应该有一个单独的项目目录。让我们命名该目录my-game
。此外,您应该在其中有一个源目录。让我们命名它src
。您应该将源文件放入该源目录中。您的项目目录布局现在如下所示:
my-game/
|-- src/
|-- Field.java
|-- Map.java
如果你想编译类Map
使用一个简单的命令,您应该在src
目录和调用:
my-game/src> javac Map.java
这将导致两个源文件都被编译。生成的类文件也将放入该源目录中。
到目前为止,一切都很好。编译时最好在项目目录中:
my-game> javac src/Map.java
但这现在将导致您描述的编译器错误(并且不会生成类文件),就像现在的类一样Field
在错误的目录中查找。您需要告诉编译器在哪里查找它们:
my-game> javac -sourcepath src src/Map.java
这会导致与之前相同的结果。
现在更好的方法是将源目录和目标目录分开。首先创建一个目录,名为bin
在您的项目目录中,然后编译:
my-game> javac -sourcepath src -d bin src/Map.java
这将导致以下目录布局:
my-game/
|-- src/
| |-- Field.java
| |-- Map.java
|-- bin/
|-- Field.class
|-- Map.class
如果您成功完成了最后一步,则可以使用 Eclipse 等 IDE。它具有完全相同的项目目录布局,但您不必担心用于编译的确切命令行。