Java编译日期,如C __DATE__

Aym*_*man 2 java compiler-construction

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

Dun*_*gor 9

标准的Java编译器无法做到这一点(我不认为C编译器会这样做 - 我猜这是预处理器提供DATE,FILE等)

你必须写一个日期为字符串的源文件 - 用过滤器查看ant的复制任务

<copy file="pre-src/Version.java" toFile="src/Version.java">
  <filterset>
    <filter token="DATE" value="${TODAY}"/>
  </filterset>
</copy>
Run Code Online (Sandbox Code Playgroud)

然后在你的来源

public class Version {
    public static final String date = "@DATE@";
}
Run Code Online (Sandbox Code Playgroud)

要以各种格式将日期输入到ant属性TODAY,请查看Tstamp任务.