我用今天的日期编译了一个java程序,然后我将系统日期改为昨天并修改了java文件。现在它不会编译。我今天仍然上课了。
<project name="SampleTest">
<target name="compile">
<javac srcdir="${user.dir}" destdir="${user.dir}"/>
</target>
<target name="run">
<java classname="TestSample" classpath="."/>
</target>
</project>
在此我得到了警告信息
编译: [javac]警告:将来修改TestSample.class。 Apache Ant版本1.6.2于2004年8月5日编译
答案 0 :(得分:0)
Warning: modified in the future可能包含您正在寻找的某种解释。关于这种行为有很多想法,例如:
&#34; Ant这样的问题可能来自FAT / FAT32文件系统缺少时间戳精度的问题,在Windows上使用NTFS,请参阅我的答案中的详细信息。&#34;
或者:
&#34;编译JSP文件。许多服务器还允许您替换正在运行的服务器上的文件。然后,它会比较已编译源的时间戳和jsp文件的时间戳,以确定是否需要重新编译。
如果文件将来会过时,则jsp文件将始终比类更新。这会给你一个警告。
检查文件的时间戳。也许有人在计算机上使用不正确的时钟创建它,现在它似乎是在未来创建的#34;。或者服务器的日期可能不正确(检查时区设置)。
是否涉及远程文件服务器? Web服务器和文件服务器之间的时钟漂移也可能导致此错误。&#34;
但是我向你提出的问题是你究竟想要做到这一点的目的是什么?我确定这是作为某种故障安全行为实现的。如果是这样,那么它肯定有效。
你总是可以考虑让Ant先删除.class文件。