繁体   English   中英

Ant:将一个编译的类文件添加到javac类路径?

[英]Ant: add a single compiled class file to javac classpath?

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

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

如果没有,为什么? 如果是这样,怎么样? 提前致谢!

填写引用您的类文件的路径:

<path id="javac.classpath">
     <pathelement location="./gen/stragglers/SomePOJO.class"/>
</path>

然后在你的javac任务中使用它:

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

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

因此,例如,如果定义的类SomePOJO.classstragglers.SomePOJO ,那么你会在加gen目录到classpath

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

如果路径.class文件不匹配的package类的声明,那么你就必须将它移动到该匹配的封装结构的临时目录,然后该目录添加到类路径来代替。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM