2009-06-16 18 views
6

に変更は私が警告警告:将来

Warning: sendmailpm.jsp modified in the future. 

これはどういう意味を取得していますか?

+6

LHCが稼動していて、私たちはすべて死ぬつもりです:( – cwap

+0

..すごいことに申し訳ありません:P – cwap

+3

最高です。エラー。これまでに –

答えて

33

将来変更する可能性がある場合は、過去に何かを修正することはできません。一時的なパラドックスが発生する可能性があります。時間的なパラドックスは、時間の流れを崩壊させ、私たちの現実が完全に消滅する原因となります。

このファイルを変更しないでください。

+25

+1面白いです。-1役に立たない。 –

+3

私はこの同じエラーが発生しています。皆さんはこれを面白いと思っています.Java 8の[Duration](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秒です。 –

3

誰かがファイルを変更した後、サーバーの時刻を変更した可能性があります。あなたのボックスが何時に設定されているかを確認し、正しいことを確認してください。そうであれば、おそらくその副作用なしに警告を無視することができます。

15

JSPファイルがコンパイルされます。多くのサーバーでは、実行中のサーバー上のファイルを置き換えることもできます。次に、コンパイルされたソースのタイムスタンプとjspファイルのタイムスタンプを比較し、再コンパイルが必要かどうかを判断します。

ファイルの日付が今後変更されると、jspファイルは常にそのクラスより新しいファイルになります。これにより警告が表示されます。

ファイルのタイムスタンプを確認してください。おそらく、誰かが誤った時計を使ってコンピュータでそれを作成したことがあり、今は「将来作成される」ようです。または、サーバーの日付が正しくない可能性があります(タイムゾーンの設定を確認してください)。

リモートファイルサーバーは関係していますか? Webサーバーとファイルサーバーの間のクロックドリフトによってこのエラーが発生する可能性があります。

これをさらに診断するには、jspサーバー、OS、ファイルシステム、などのヒントを教えてください。

2

JSPはオンザフライでサーブレットにコンパイルされます。サーブレットコンテナは、両方の「最終変更日」を比較して、JSPが変更され、サーブレットを更新する必要があるかどうかを確認します。将来の「最後に変更された」日付は、上記のメカニズムを中断して更新されないサーブレットにつながる可能性があるため、システムクロックに問題があることを示します。

6

Antビルド中に、タスク中にこの警告を出力することができます。先のファイルは元より新しい場合、デフォルトで

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

Antのタスク<copy>は、ファイルをコピーしません。これにより、多くの時間とディスクI/Oが節約されます。ただし、この動作はオプション<copy overwrite="true">で無効にすることができます。これはAntに、あなたが何をしているのかを知っていることを伝えます。変更日にかかわらずコピー先のファイルを上書きします。これにより、警告も抑制されます。

+1

Antでこのような問題は、FAT/FAT32ファイルシステムのタイムスタンプ精度の問題からくる可能性があります。WindowsではNTFSを代わりに使用します。詳細は私の答えを参照してください。 – FelixD

1

システムの時刻が、現在ではありません、これはあなたがビルドファイルに

6

を実行しているあなたのコードがFAT/FAT32パーティションまたはZIPファイルに常駐している場合は、これは不足が原因で発生することができFAT/ZIPファイルシステムのタイムスタンプの精度は2秒(afaik)です。これにより、コンパイラ/ビルド・ツールの出力が将来若干の時間で保存されるため、次のビルド/デプロイメント・ステップ(JSPコンテナの内部にある可能性があります)が実行されると、ファイルは将来の警告が生成されます。別のファイルシステムを使用してみてください。 DOS/WindowsのNTFSボックス。

FAT32 TrueCryptパーティションでJavaビルドを実行しようとすると、Apache Antからの警告メッセージが表示されました。他の原因(タイムゾーンの違い、クロックオフなど)を除外した後、私は結局これに関するヒントを見つけ、NTFS TrueCryptパーティションに変更して警告が消えました。

+0

ありがとう、私はこれが奇妙なエラーメッセージであり、ほとんどの人が自分自身を助けることができなかったことを認識していますが、これが私の必要なものです。 – cgp

+0

ご参考までに、あなたのコメントをお寄せいただきありがとうございます。@altCognito :) – FelixD

+1

ZIPファイルは内部的にFATと同じ精度を使用しています。 –

0

私は同じ問題を抱えています。解決策は次のとおりです。ビルドマシンの日時を変更して、ファイルがコピーされたマシンの日時と同期させました。

0

リモートサーバーにインストールしようとしているjarファイルがある場合。リモートサーバのタイムスタンプがあなたのタイムゾーンと一致しないことがあります。あなたのタイムゾーンがリモートサーバーより2時間先の場合、この問題が発生する可能性があります。 もう1つのトリックを試してみました.. JARファイルを作成した後、システム時刻に戻って数ヶ月の日付を設定してJARをインストールしようとすると、このエラーが発生します。

2

システム時刻が正しいかどうかを確認してください。あなたのゾーンの標準時間と同期しない場合。次に、ビルドファイルを実行します。

0

コンパイルするJavaファイルに、コンパイルするシステムの現在の時刻を超えるタイムスタンプがある場合、この警告が表示されます。 私はあるマシン上のファイルを修正し、別のマシンに置いてコンパイルしようとしましたが、この問題に遭遇しました。

0

私はこのエラーもありましたが、上記の答えを読んだあと、日付の操作を必要とする機能のテストのために、コンピュータで数日前に行った変更が原因であることに気付きました。 - 私は、将来的に4日間に、コンピュータの日付を設定しなければならなかった新実装される機能のユニットテストを実行するには

1:ここでは

は何が起こったかです。

2 - テストを実行すると、コンパイラはクラスを自動的にコンパイルしました。

3 - したがって、私がプロジェクトを再構築しようとしていたとき、IDEはファイルが将来的に(皮肉的に)作成されたことを検出しました。 (LoL - だからこそ私はJavaが大好きなので、将来コードすることもできます)。

だから+1 @ jmanning2k。

私はそれがこの問題に直面している誰かを助けることができれば幸いです。