代码之家  ›  专栏  ›  技术社区  ›  Ayman

JAVA编译日期,如C

  •  2
  • Ayman  · 技术社区  · 16 年前

    我需要将特定格式的编译日期自动编译成一个Java源文件,比如C编译器。 日期 定义,如何?

    3 回复  |  直到 16 年前
        1
  •  9
  •   Duncan McGregor Evgeniy Dorofeev    16 年前

    标准Java编译器没有办法这样做(我认为C编译器也不这样做,我猜它是预处理器,给出日期、文件等)。

    您必须将日期作为字符串写入源文件-使用过滤器查看Ant的复制任务

    <copy file="pre-src/Version.java" toFile="src/Version.java">
      <filterset>
        <filter token="DATE" value="${TODAY}"/>
      </filterset>
    </copy>
    

    然后在你的来源

    public class Version {
        public static final String date = "@DATE@";
    }
    

    要将各种格式的日期转换为Ant属性,请查看tstamp任务。

        2
  •  1
  •   vickirk    16 年前

    您可以使用AspectJ编译时编织来初始化变量(显然您希望通过将方面中的日期转换为字符串,然后让代码解析该字符串来完成分配)。

    当然,也没有什么可以阻止你在Java文件上使用C预处理器。

        3
  •  1
  •   Denis Tulskiy    16 年前

    你考虑过注释处理器吗?您可以在使用javac编译之前运行它们,然后在有特定注释的情况下手动将日期添加到文件中。