当源文件是包的一部分且源树的目录结构不遵循包层次结构时,javac
ant
任务无法编译java类。但是我在不同的机器上看到了相同的
的build.xml
文件运行正常。
例如,如果我有一个包含com.abc.myapp.server.base
的包的java文件,并且我的源文件放在C:\mySource\base
文件夹下,javac
则无法编译此类。
但是,如果我将.java
源文件移到C:\mySource\com\abc\myapp\server\base
文件夹下,一切都会正常。
我在 Windows 7 上使用 ANT 1.8.0 版本和 JDK 1.7.0_17 版本。
请告知
答案 0 :(得分:0)
听起来您没有设置目录结构来匹配java源文件的包。 “org.example.abc.HelloWorld”类的源代码应该位于/ src / org / example / abc这样的目录中。
通常,您希望build.xml位于您尝试构建的任何项目的顶层,然后其中的javac任务可以引用您的包结构所在的源目录。
这样的事情:
<project name="example" default="compile">
<target name="compile" description="compiles">
<mkdir dir="build"/>
<javac srcdir="src" destdir="build"/>
</target>
</project>
这显然非常简化,但应该有助于您入门。
如果您仍遇到问题,请发布build.xml以及项目布局的一些说明,以便我们提供帮助。