ant java编译抛出找不到符号

时间:2014-07-08 12:45:55

标签: java ant compilation classpath

我正在开发一个具有分层架构的项目。 我有一个接口ABC,在该接口中我有一个枚举XYZ

前者

public interface ABC {
     public enum XYZ {
         CONSTANT1("SOMETHING"),
         CONSTANT2("SOMETHING3");
         final String name;

         private TYPE(String name) {
            this.name=name;
         }

         public String getName() {
            return this.name;
         }
     }
}

我正在使用ant编译它并在其他层使用此jar文件。在该层中,我试图像

那样访问它
String name=ABC.XYZ.CONSTANT1.getName();

我在编译期间遇到符号未找到错误。我验证了classpath设置正确。 我使用的是ant v 1.8和java 1.6。

为什么我收到此错误?

1 个答案:

答案 0 :(得分:0)

首先,不要将枚举嵌套在接口中。完全没有问题,它有自己的以enum命名的源文件。

其次,我认为您的私人构造函数中的XYZ代替TYPE

最后,你应该能够以这种方式使用它,无论是通过ant编译还是在eclipse中编译或直接使用javac。可能你没有编译所有东西 - 你做的方式,应该有ABC.class(界面),ABC$XYZ.class(内部枚举)和你的调用类的类文件。