编译.java文件时找不到符号错误

美好的一天,我在同一目录中有两个类Map和Field。我成功地编译了Field.java,但是当我编译Map.java时,我得到了:

  Map.java:4: error: cannot find symbol

private Field[][] gameMap;

^

symbol: class Field

location: class Map

Map.java:61: error: cannot find symbol

public Field getFieldPosition(){

^

symbol: class Field

location: class Map

Map.java:8: error: cannot find symbol

gameMap = new Field[10][20];

^

symbol: class Field

location: class Map

3 errors

这是两个类的代码:

public class Map {

private Field[][] gameMap;

private int row, col;

private int rowPlayer, colPlayer;

public Map(){//constructor

gameMap = new Field[10][20];

for(row=0;row<10;row++){

for(col=0;col<20;col++){

gameMap[row][col].setFieldUntilled();

}

}

rowPlayer = 0;

colPlayer = 0;

gameMap[rowPlayer][colPlayer].setPlayerLoc();

}

public Field getFieldPosition(){

return gameMap[rowPlayer][colPlayer];

}

}

对于Field.java(如有必要):

public class Field {

private int playerLoc;

private char fieldType;

public Field(){//constructor

fieldType = 'u';

playerLoc = 0;

}

public void setFieldUntilled(){

fieldType = 'u';

}

public void setFieldTilled(){

fieldType = 't';

}

public void setPlayerLoc(){

playerLoc = 1;

}

public void removePlayerLoc(){

playerLoc = 0;

}

public int getPlayerLoc(){

return playerLoc;

}

}


我分别编译了Field.java和Map.java:javac Field.java没有返回任何错误,但是javac Map.java返回了以上错误。

回答:

我仍然不清楚您的问题到底在哪里。但是,我将告诉您成功的步骤。

提示:我现在将描述许多替代方案。

我assumme,对于你的源文件Map,并Field没有任何包声明和import语句。

您应该在文件系统中某个项目的某个位置有一个单独的项目目录。让我们命名该目录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。它完全具有此项目目录的布局,但是您不必为确切的命令行而烦恼。

以上是 编译.java文件时找不到符号错误 的全部内容, 来源链接: utcz.com/qa/411880.html

回到顶部