0

我正在尝试从命令行编译一个 Java 项目。该项目包含不同包中的类文件。如果我指定每个包的每个 java 文件,程序编译并运行良好。这是我的目录结构:

toplevel/
    mainFile.java
    level1/ (Contains fileA.java)

现在如果我这样做javac -classpath ./toplevel toplevel/mainFile.java toplevel/level1/fileA.java了,它编译得很好,我可以用java toplevel/mainFile. 现在,如果在 level1 中创建一个名为“level2”的新文件夹并在其中创建一个类“B”,新的目录结构将变为:

toplevel/
    mainFile.java
    level1/ (Contains fileA.java)
        level2/ (Contains fileB.java)

为了编译这个我必须做: javac -classpath ./toplevel toplevel/mainFile.java toplevel/level1/fileA.java toplevel/level1/level2/fileB.java这变得荒谬了。是否有递归编译每个包和其中的文件的指令?

4

1 回答 1

1

你试过-sourcepathflag吗?从Oracle 文档中,

-sourcepath sourcepath 指定源代码路径以搜索类或接口定义。与用户类路径一样,源路径条目由分号 (;) 分隔,可以是目录、JAR 档案或 ZIP 档案。如果使用包,则目录或存档中的本地路径名必须反映包名。

于 2013-08-28T15:30:15.870 回答