我是Java新手。因此,有人可以解释为什么我不能在子文件夹中导入Java文件吗?
src └── ASCIIGame ├── Board.java ├── game │ ├── Chess.java │ └── TicTacToe.java ├── Main.java └── Menu.java
这是导入和打包的代码
Main.java和Board.java和Menu.java
package src.ASCIIGame; import src.ASCIIGame.game.*; import src.ASCIIGame.*;
game / Chess.java和game / TicTacToe.java
package src.ASCIIGame.game;
这是我用来编译代码的命令
cd src/ javac -sourcepath . ASCIIGame/*.java
我遇到的错误
ASCIIGame/Main.java:3: error: package src.ASCIIGame.game does not exist import src.ASCIIGame.game.*;
答案 0 :(得分:1)
使用-d
标志进行编译,并使用此javac
将为您构建适当的目录层次结构,而不管其源位置如何。
您可以找到here有关-d
标志的更多信息:
-d目录
设置类文件的目标目录。该目录必须已经存在; javac不会创建它。如果一个班级是 包的一部分,javac将类文件放在子目录中 反映软件包名称,并根据需要创建目录。对于 例如,如果您指定-d C:\ myclasses并且该类被调用 com.mypackage.MyClass,则该类文件被称为 C:\ myclasses \ com \ mypackage \ MyClass.class。如果未指定-d, javac将每个类文件放在与源文件相同的目录中 是从中生成的。
注意:-d指定的目录不会自动添加到您的 用户类路径。
所以,如果您像这样编译
javac -d bin -sourcepath . ASCIIGame/*.java
这将在bin
下创建任何必需的目录,以匹配文件中声明的软件包。