大家好,
最近使用ANT编译工程。做了一个简单的实验,发现javac task在处理java代码中的import语句时出错,导致便以失败。import一个在根目录下的class(即没有包名前缀)时,会提示输入.(包名分隔符)。难道java代码不允许子文件夹里的类调用其父文件夹中的类?但为何我将代码放入Eclipse时,却没有问题呢?有谁遇到过这样类似的问题么?怎么解决的呢?希望能得到大家的帮助。
附件中是代码和build.xml以及输出的log信息。
源代码很简单,一个A.java一个com/B.java。
//A.java
import com.*; public class A{ public static void test(){ System.out.println("A.test()"); } public static void main(String[] args){ System.out.println("Hello!"); } }
//com/B.java
package com; import A; //编译错误产生的地方 public class B{ public static String out(){ A.test(); return "This is B!"; } }
//build.xml
<project name="Test" default="compile" basedir="."> <target name="compile"> <javac includeantruntime="false" listfiles="true" includeDestClasses="false" srcdir="src" destdir="class"> <classpath> <pathelement path="class"/> </classpath> </javac> </target> </project>