从Java子文件夹导入

时间:2019-04-06 23:35:29

标签: java

我是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.*;

1 个答案:

答案 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下创建任何必需的目录,以匹配文件中声明的软件包。