java - Ant:将单个已编译的类文件添加到 javac 类路径?

标签 java ant classpath javac

在 Ant 中,如果我有一个单独的已编译 CLASS 文件位于我的项目中的某处(比如 gen/stragglers/SomePOJO.class ,当我目前有以下内容时,是否有办法专门将该类文件添加到我的 <javac> 编译类路径中:

<javac includeantruntime="false" srcdir="src/main/java"
        destdir="gen/bin/main">
    <classpath refid="main.compile.path"/>
</javac>

如果不是,为什么?如果是这样,如何?提前致谢!

最佳答案

您不能像这样添加单个类文件,您可以将目录 添加到类路径,编译器将在该目录下的类从其包结构派生的相对路径中查找类。据我所知,这是不可协商的 - 目录结构必须匹配包结构。

例如,如果 SomePOJO.class 中定义的类是 stragglers.SomePOJO,那么您需要将 gen 目录添加到类路径

<javac includeantruntime="false" srcdir="src/main/java"
        destdir="gen/bin/main">
    <classpath>
      <pathelement location="gen" />
      <path refid="main.compile.path"/>
    </classpath>
</javac>

如果 .class 文件的路径与类的 package 声明不匹配,那么您必须将它移动到一个临时目录中,确实匹配包结构,然后将该目录添加到类路径中。

关于java - Ant:将单个已编译的类文件添加到 javac 类路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17747607/

相关文章:

java - 简单 java 程序的 Ant jar 文件

java - 为什么 ant 中的 javac 使用不兼容的类型构建脚本错误

Java 在 CMD 中运行,但不在 Powershell 中运行

java - Ant:从类路径中排除一个 jar。我想让它表现得像它不存在一样

java - 如何在 Gradle 中排除目录下的所有文件?

java - 没有 Runnable 方法和 Test 类应该只有一个公共(public)零参数构造函数

java - Jtree扩展和选择问题

java - JBoss 6.2 上 Web 应用程序的 .ear 文件中 Java 存档的类路径

java Process.waitfor 是一个阻塞调用

java - 在 Java 中解锁一个被多次锁定的对象需要多少次解锁操作?