【问题标题】:automatically compiling multiple java packages [duplicate]自动编译多个java包[重复]
【发布时间】:2013-08-31 18:17:12
【问题描述】:

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

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

现在,如果我执行javac -classpath ./toplevel toplevel/mainFile.java toplevel/level1/fileA.java,则编译得很好,我可以使用java toplevel/mainFile 运行它。 现在如果a在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 这越来越荒谬了。是否有递归编译每个包和其中的文件的指令?

【问题讨论】:

  • 为什么不使用像 ant 或 maven 这样的构建工具?有了这些,这将是微不足道的。
  • @rocketboy 我不想使用任何构建工具,这需要学习一些额外的东西。用户必须能够从命令行运行它

标签: java class compilation packages


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多