Ant javac返回消息"A.java添加为A.class不存在"

Rig*_*ggy 5 java ant

我正在编写一个非常奇怪的ANT任务.我尝试了各种谷歌搜索没有明确的答案.

我在ANT中有一个调用javac命令的编译目标:

<target name="compile">
    <mkdir dir="${classes.dir}" />
    <javac srcdir="${src.dir}:${unittest.src.dir}" destdir="${classes.dir}">
        <classpath refid="classpath" />
        <exclude name="**/plugins/**" />
        <exclude name="**/outbound/**" />
    </javac>
</target>
Run Code Online (Sandbox Code Playgroud)

这不会产生任何错误,但是当我使用-verbose和-debug标记运行ant时,我在日志中得到以下内容:

[javac] package/MyClass.java added as package/MyClass.class doesn't exist
Run Code Online (Sandbox Code Playgroud)

所以这不是错误的,但它给了我这个奇怪的结果(最后附加了"不存在").显然这会导致后来的目标在尝试运行类时失败(在本例中,我的junit目标).

Web搜索似乎表明我要么丢失了一个java_home env变量,要么就是在某个地方存在版本问题(当javac上的source属性设置时,这个错误往往会发生,但我删除了它,但仍然得到了奇怪的结果).我相信我们已经涵盖了这些可能性.

对此的任何想法或建议都会很精彩.谢谢.

Mar*_*ers 4

我对 ant 不太了解,但我几乎猜这个错误消息是一个转移注意力的信息。我认为这只是报告 MyClass.java 已添加到要编译的文件列表中,因为在类路径上找不到该类的编译版本。任务不会失败的事实似乎支持了这一点。

您后来遇到的错误是什么?

  • 到底错误是什么?我有同样的问题,我的源代码没有编译,原因我似乎无法弄清楚。构建环境没有任何改变,这个问题一夜之间就出现了。 (3认同)