2009-06-16 144 views
6

修改我收到警告警告:在未来

Warning: sendmailpm.jsp modified in the future. 

这是什么意思?

+6

LHC已启动并运行,我们即将死亡:( – cwap 2009-06-16 14:01:45

+0

..对不起双关语:P – cwap 2009-06-16 14:02:31

+3

最佳。错误。永远。 – 2009-06-16 14:03:13

回答

33

如果这样做可能会改变未来,那么您不得在过去修改任何内容。你可能会造成时间悖论,这可能会破坏时间流,并导致我们的整个现实不复存在。

请不要修改该文件。

3

有人可能修改了该文件,然后更改了服务器上的时间。尝试检查以查看您的盒子设置为何时,并确保它是正确的。如果是这样,您可以忽略该警告而没有任何副作用。

15

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

如果该文件将来会被注明日期,那么jsp文件将永远比类更新。这给你一个警告。

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

是否存在涉及远程文件服务器? Web服务器和文件服务器之间的时钟漂移也会导致此错误。

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

2

JSP即时编译为servlet。 servlet容器比较两者的“最后修改”日期,以查看JSP是否已更改以及是否需要更新servlet。将来的“最后修改”日期表示系统时钟有问题,这是相关的,因为它可能会破坏上述机制,导致未更新的servlet。

6

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

[copy] Warning: foo\bar.txt modified in the future. 

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

1

这是因为,该系统的时间不是当前正在其上运行的版本文件

6

如果你的代码是驻留在FAT/FAT32分区或ZIP文件,这可以通过缺乏引起的在FAT/ZIP文件系统的时间戳中,精度为2秒(afaik)。这可能会导致编译器/构建工具的输出将来会稍微保存一段时间,以便在下一个构建/部署步骤(可以在JSP容器内部)执行时,该文件将显示为未来,并且警告就产生了。尝试使用不同的文件系统,例如NTFS在DOS/Windows机器上。

当试图在FAT32 TrueCrypt分区上执行Java构建时,我从Apache Ant发出了相同的警告消息。在排除其他原因(时区差异,时钟关闭等)之后,我最终发现了一个提示,将其更改为NTFS TrueCrypt分区,并且警告消失。

0

我得到了同样的问题。解决方案是:我在生成机器上更改了日期和时间,以便与文件复制到的计算机上的日期和时间同步。

0

如果您试图在远程服务器上安装一个jar文件。可能发生远程服务器时间戳与您的时区不匹配的情况。如果您的时区比远程服务器提前几个小时,那么您可能会遇到此问题。 我也尝试了更多的技巧.. 当你创建一个JAR文件,然后去系统时间并设置一个日期几个月回来,并尝试安装JAR,你会得到这个错误。

2

检查系统时间是否正确。如果不与您的区域的标准时间同步。然后运行你的构建文件。

0

如果您正在编译java文件有一个时间戳,超出上正在编译系统的当前时间......你会看到这个警告。 我修改了一台机器上的文件,并将其放在另一台机器上,并尝试编译并遇到了这个问题。

0

我有这个错误太多,但读了一些答案,上面我意识到是有人因换我在电脑上完成的一些日子里因为一个功能测试,需要日期操作后。

这里是发生了什么:

1 - 要执行的新的实现的功能,我不得不设置计算机日期到4天在未来的单元测试。

2 - 当我执行的测试的编译器编译的类自动,如所预期。

3 - 因此,当我试图重建项目的IDE检测到了(讽刺)在未来创建的文件。 (LoL - 这就是为什么我爱Java,你甚至可以在未来编码)。

所以+1 @ jmanning2k。

我希望它能帮助有人面对这个问题。