给定这个(game.Game.java
,game.Player.java
,game.io.InputConsole.java
):
src
|_game
Game.java
Player.java
|_io
InputConsole.java
我一直在尝试使用 javac
在控制台上编译这个项目(尝试在 SO 和互联网上找到的各种解决方案),但我一直失败。我也尝试使用批处理文件,但无论哪种情况,我得到的都是"找不到符号"错误。
由于几乎所有相关问题的答案都建议使用 Ant 或 Maven 等构建工具,因此我决定尝试一下 Ant(第一次)。这是我的 Ant 文件的样子:
<project default="run" name="Tic_Tac_Toe">
<target name="run" depends="compile">
<java classname="game.Main">
<classpath path="bin" />
</java>
</target>
<target name="compile">
<javac srcdir="." destdir="bin"/>
</target>
</project>
以下是输出的摘录:
C:Users...srcgameioInputConsole.java:10: error: cannot find symbol
public Player getPlayer(Sign sign) {
symbol: class Player
location: class InputConsole
PS:当我InputConsole.java
移动到game
包中时,它可以工作。所以我确信类本身很好。我认为问题要么是我未能为编译器提供正确的路径,要么是我的包结构错误。
您需要同时导入两者。包之间没有等级,尽管外观game.io
不是游戏的"子包",因为没有子包这样的东西。
对于package game;
的课程,您需要import game.io.InputConsole;
.在包game.io;
中,您需要import game.*;
.
请注意,*
只是方便,最好单独导入每个引用的类。