2009-06-16 73 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。

我希望它能幫助有人面對這個問題。