【问题标题】:Ant not recognizing classpathAnt 无法识别类路径
【发布时间】:2011-06-30 10:35:18
【问题描述】:

我不明白为什么这个 Ant 任务失败了:

<javac srcdir="src" destdir="bin" verbose="true" classpath="lib/*;${MyCommons.proj.path}/MyCommons.jar" />

我的 jar 都在 lib 中,外加一个外部 jar。当我将鼠标悬停在类路径部分时,eclipse 显示所有 jar 文件都被此配置识别。

在编译时,我得到 100 个错误,找不到这个包或符号(它没有找到 jars)。

[javac] Compiling 51 source files to C:\MyProjects\MyCommons\bin
[javac] C:\MyProjects\MyCommons\src\com\proxyandvpn\datamodel\Notification.java:3: package org.joda.time does not exist
[javac] import org.joda.time.DateTime;
[javac]                     ^
[javac] C:\MyProjects\MyCommons\src\com\proxyandvpn\datamodel\Transaction.java:5: package org.joda.time does not exist
[javac] import org.joda.time.DateTime;

我已经尝试了我能找到的所有类路径格式,classpathref's、embedded、文件集、文件列表等大约一个小时。

有人看到错误吗?


在这个电话之前我有一个电话

<ant target="compile" dir="/some/other/project"/>

删除它允许 javac 命令成功编译。

【问题讨论】:

    标签: java ant classpath javac


    【解决方案1】:

    你应该试试这个(我自己没跑,但我认为它有效):

    <path id="some.classpath">
        <fileset dir="lib">
            <include name="*.jar"/>
        </fileset>
        <pathelement location="${MyCommons.proj.path}/MyCommons.jar"/>
    </path>
    

    然后

    <javac srcdir="src" destdir="bin" verbose="true">
        <classpath refid="some.classpath"/>
    </javac>
    

    如果有错误,把它们放在 cmets 中。我会改正的。

    【讨论】:

    • 啊哈,等等,我刚刚删除了之前对 的调用,它编译了我需要的 MyCommons.jar,当我这样做时它会编译。另一个构建文件必须以某种我还不熟悉的奇怪方式与这个文件混合在一起。
    • 您可以添加类路径的调试打印: 也许问题是在基本目录中。你确定相对链接是正确的吗?
    • 我的错,不是这个任务的错误,而是依赖项目的编译任务。我一直在尝试更改这个项目的类路径,而我本应该对另一个依赖项目进行这些修复。感谢您帮助我至少知道我这样做是正确的,这样我就可以将注意力从类路径上移开。
    【解决方案2】:

    我遇到了完全相同的问题。这对我有帮助:

    <ant target="compile" dir="/some/other/project" inheritAll="false"/>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-13
      • 2018-05-25
      • 2016-09-11
      • 2015-04-19
      • 1970-01-01
      • 2019-07-20
      • 2014-03-14
      • 1970-01-01
      相关资源
      最近更新 更多