Ant编译创建不需要的java类文件

Ant编译创建不需要的java类文件,java,class,ant,build,Java,Class,Ant,Build,我的标准ant构建不小心编译了一个文件名错误的子类。下面是示例类 public final class AdminResources { public static final class APPLICATION { public static final class MESSAGEBLOCK { public static final String LEDGER = "application.admin

我的标准ant构建不小心编译了一个文件名错误的子类。下面是示例类

public final class AdminResources
{

   public static final class APPLICATION
   {
            public static final class MESSAGEBLOCK
            {
               public static final String LEDGER = "application.admin.app.messageblock.ledger";
            }
    }
}
build.xml文件中的部分示例

<target name="Compile_Sources" depends="Init_Dir" description="Compile Sources">
    <javac
        debug="true"
        srcdir="${source.dir}"
        destdir="${build.dir}"
        classpathref="classpath">                   
    </javac>
</target>

构建过程运行顺利,没有出现错误,但根据上面的类示例生成了额外的不需要的文件,如下所示

  • AdminResources.class(这没问题)
  • AdminResources$APPLICATION.class
  • AdminResources$APPLICATION$MESSAGEBLOCK.class
下面是关于我的环境的信息

  • Ant版本:1.9.0
  • Java:1.7.0-u21

这与ANT编译无关:这两个文件是从
AdminResources
的内部类编译而来的类文件。即使手动编译程序,最终每个类也会有一个文件,包括程序可能具有的匿名类:

Class name                                File name
---------------------------------------   ---------------------------------------------
AdminResources                            AdminResources.class
AdminResources.APPLICATION                AdminResources$APPLICATION.class
AdminResources.APPLICATION.MESSAGEBLOCK   AdminResources$APPLICATION$MESSAGEBLOCK.class

这与ANT编译无关:这两个文件是从
AdminResources
的内部类编译而来的类文件。即使手动编译程序,最终每个类也会有一个文件,包括程序可能具有的匿名类:

Class name                                File name
---------------------------------------   ---------------------------------------------
AdminResources                            AdminResources.class
AdminResources.APPLICATION                AdminResources$APPLICATION.class
AdminResources.APPLICATION.MESSAGEBLOCK   AdminResources$APPLICATION$MESSAGEBLOCK.class

这正是java编译器从一个.java文件创建多个.class文件的方式。对于匿名类,还有类似于
AdminResources$1.class
的内容。没关系。哪种方式不受欢迎?!这些是您声明的类。抱歉,这是因为我对大规模java开发缺乏了解。这正是java编译器从一个.java文件和几个.class文件创建的方式。对于匿名类,还有类似于
AdminResources$1.class
的内容。没关系。哪种方式不受欢迎?!这些是您声明的类。对不起,这是因为我对大规模java开发缺乏理解。