警告:将来修改

时间:2009-06-16 13:59:03

标签: java jsp

我收到了警告

Warning: sendmailpm.jsp modified in the future. 

这是什么意思?

13 个答案:

答案 0 :(得分:35)

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

请不要修改该文件。

答案 1 :(得分:15)

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

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

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

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

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

答案 2 :(得分:6)

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

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

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

答案 3 :(得分:6)

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

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

答案 4 :(得分:3)

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

答案 5 :(得分:3)

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

答案 6 :(得分:2)

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

答案 7 :(得分:1)

这是因为,系统的时间不是运行构建文件的当前时间

答案 8 :(得分:1)

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

答案 9 :(得分:0)

我遇到了同样的问题。解决方案是:我更改了构建计算机上的日期和时间,以便与文件复制到的计算机上的日期和时间保持同步。

答案 10 :(得分:0)

如果您有一个试图在远程服务器上安装的jar文件。远程服务器时间戳可能与您的时区不匹配。如果您的时区比远程服务器早几个小时,那么您可能会遇到此问题。 我还尝试了一个技巧.. 当您创建JAR文件,然后转到系统时间并设置几个月后的日期并尝试安装JAR,您会收到此错误。

答案 11 :(得分:0)

我也有这个错误,但在阅读了上面的一些答案后,我意识到这是由于我在计算机上做了一些改变,因为测试了需要日期操作的功能。

以下是发生的事情:

1 - 要执行新实施功能的单元测试,我必须将计算机日期设置为将来的4天。

2 - 当我执行测试时,编译器会按预期自动编译该类。

3 - 因此,当我尝试重建项目时,IDE检测到该文件是(具有讽刺意味)将来创建的。 (LoL - 这就是为什么我喜欢Java,你甚至可以在将来编码。)。

所以+1 @ jmanning2k。

我希望它可以帮助面对这个问题的人。

答案 12 :(得分:0)

这个警告也出现在我面前,这是因为之前我的计算机修改了它的时间,因为它比实际时间提前了20分钟