java - 自动编译多个java包

标签 java class compilation package

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

最佳答案

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

-sourcepath sourcepath Specify the source code path to search for class or interface definitions. As with the user class path, source path entries are separated by semicolons (;) and can be directories, JAR archives, or ZIP archives. If packages are used, the local path name within the directory or archive must reflect the package name.

关于java - 自动编译多个java包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18491887/

相关文章:

android - 使用ndk构建错误编译具有多个c文件的 native android库 * No rule to make target

java - Java 中的 Paypal 集成

c++ - 无法使用 XLNT 库构建 C++ 项目

使用 GNU make 和 Microsoft Visual Studio 编译器编译 .obj 文件中的所有 .c 文件

java - 如何用java中的OOP设计一个RPG类系统?

css - 如何在自定义 css 框 wordpress 中隐藏主题功能

javascript - 你如何使用 Canvas 作为一个类?

java - 如何将假设应用于 Junit5 中的所有嵌套测试?

java - 艾玛是如何工作的?

java - Eclipse RCP - 程序中的 JAXB 异常,但在最小示例中不存在 : javax. xml.bind.JAXBElement 或其任何父类(super class)在此上下文中已知