自动编译多个java包

时间:2013-08-28 15:15:52

标签: java class compilation packages

我正在尝试从命令行编译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这变得越来越荒谬。是否有一个指令以递归方式编译每个包及其中的文件?

1 个答案:

答案 0 :(得分:1)

您是否尝试过-sourcepath标志。来自Oracle documentation

  

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