警告:将来修改

use*_*796 7 java jsp

我收到了警告

Warning: sendmailpm.jsp modified in the future. 
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

小智 39

如果这样做可能会改变未来,则不允许您在过去修改任何内容.你可能会引起一个时间悖论,这可能会破坏时间流并导致我们的整个现实停止存在.

请不要修改该文件.

  • 我有同样的错误.真的.这个答案根本没有帮助......顺便说一句,如果你们觉得这很有趣,你将有一个Java 8日的现场[持续时间](http://docs.oracle.com/javase/8/docs/api/ java/time/Duration.html)类.它可以变成[负](http://docs.oracle.com/javase/8/docs/api/java/time/Duration.html#isNegative--)!所以我会在零下5秒内发表这个评论. (4认同)

jma*_*g2k 17

JSP文件已编译.许多服务器还允许您替换正在运行的服务器上的文件.然后,它会比较已编译源的时间戳和jsp文件的时间戳,以确定是否需要重新编译.

如果文件将来会过时,则jsp文件将始终比类更新.这会给你一个警告.

检查文件的时间戳.也许有人在时钟不正确的计算机上创建它,现在它似乎是"在未来创建的".或者服务器的日期可能不正确(检查时区设置).

是否涉及远程文件服务器?Web服务器和文件服务器之间的时钟漂移也可能导致此错误.

要进一步诊断,你必须给我们一些提示 - 什么是jsp服务器,什么操作系统,什么文件系统?


小智 6

在Ant构建期间,可以在任务期间输出此警告.

[copy] Warning: foo\bar.txt modified in the future.
Run Code Online (Sandbox Code Playgroud)

<copy>如果目标文件比源更新,则默认情况下Ant的任务不会复制文件.这节省了大量时间和磁盘I/O. 但是,您可以使用该选项覆盖此行为<copy overwrite="true">.这告诉Ant你知道你在做什么; 无论修改日期如何,都会覆盖目标文件.这也会抑制警告.


Fel*_*ixD 6

如果您的代码驻留在FAT/FAT32分区或ZIP文件中,这可能是由于FAT/ZIP文件系统的时间戳缺乏精确度造成的,即2秒(afaik).这可能导致编译器/构建工具输出在将来稍微保存一段时间,因此当执行下一个构建/部署步骤(可以是JSP容器的内部)时,该文件将显示为来自未来产生了警告.尝试使用不同的文件系统,例如DOS/Windows框上的NTFS.

尝试在FAT32 TrueCrypt分区上进行Java构建时,我从Apache Ant获得了相同的警告消息.排除其他原因(时区差异,时钟关闭等)后,我最终找到了一个提示,更改为NTFS TrueCrypt分区,警告消失了.