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

标签 java class ant build

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

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

关于java - Ant编译创建不需要的java类文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17791812/

相关文章:

java - 如何从命令行发送多行字符串

java - 通过 Ant 任务运行 javac 时如何查看编译器输出?

c++ - 为类创建带参数的复制构造函数

java - 枚举还是类?

Python 私有(private)实例变量行为

java - 有没有办法在 build.xml 中设置 ant -verbose?

java - JDBC COPY 与 Ant

java - Java 如何从 HashMap 中获取对象

java - 如何修复 java 示例的导入

java - java中if循环内的返回类型