「リソースがファイルシステムと同期していません」の回避


267

私はEclipseでJavaコードを開発し、定期的にこのメッセージを受け取ります。

リソースがファイルシステムと同期していません。

右クリック> [更新]は常にこれをクリアします。

しかし、Eclipseがこの状態を検出したときに、Eclipseが自動的に更新できないのはなぜですか?リソースを同期させたくない場合はありますか?

そのような条件があり、それらが私の作業に適用されない場合、Eclipseがこの状態になったときにEclipseを自動的に更新する方法はありますか?(人間の開発者のパフォーマンスを向上させるために、通常の開発で必要なだけリフレッシュする必要があります。)

更新(2012-06-25):最新の更新(バージョン:IndigoリリースビルドID:20110615-0604)に設定-全般-ワークスペース-自動的に更新が表示されなくなりました「アクセス時に更新」オプションがあります-これを使用する必要がありますか?


なぜメッセージを受け取るのですか?注意しないと仕事を失う可能性があります。
するThorbjörnRavnアンデルセン

1
ワークスペースを検索すると常にこのメッセージが表示されます。サーバープロジェクト(Webツール内)には、Eclipseの外で更新し続けるログファイルが含まれているためです。これまでのところ、自動で更新する以外に解決策はありませんでしたが、問題が発生しました(特に:一部のAntビルドが実行されると、EclipseがAntビルドの途中で更新され、問題が発生します)。
Stijn de Witt 14

おそらく、プロジェクトを右クリックして「更新」を選択しますか?
Junchen Liu 2015

愚かな質問:なぜリソースの「追加コピー」が義務付けられているのですか?誰もが間違いなくこれを必要とするのか、それに伴って「非同期」になる可能性もある。
nsandersen 2016

回答:


322

これは、ウィンドウ-設定-一般-ワークスペース-自動更新で有効にできます(ネイティブフックを使用した更新または新しいビルドでのポーリングと呼ばれます)。

Eclipse設定「ネイティブフックまたはポーリングを使用して更新」-スクリーンショット

これがデフォルトで有効にならない理由は、パフォーマンスに関係していると私が考えることができる唯一の理由です。

たとえば、ソースフォルダーを自動的に更新すると、ワークスペースのビルドがトリガーされます。おそらくこれをもっとコントロールしたい人もいるでしょう。

Eclipseサイトには、自動更新に関する記事もあります。

基本的に、ワークスペース外で変更されたファイルをEclipseに通知する外部トリガーはありません。むしろ、大規模なワークスペースでパフォーマンスの問題につながる可能性のあるファイルの変更を監視するために、Eclipseはバックグラウンドスレッドを使用します。


+1これはこの状態でのみ発生しますか?それとも、他の場所で私に影響を与えるのに十分なのでしょうか?
peter.murray.rust

1
設定-一般-ワークスペース-自動的に更新します。これは同じですか?
peter.murray.rust 2010

1
保存されていない変更がない開いているエディターウィンドウのファイルシステムからの変更を自動的に受け入れる方法はありますか?
Leopd


14
現在は「ネイティブフックまたはポーリングを使用して更新」(Indigo SR1)と呼ばれているようです。
Oliver Bock

37

ファイルまたはプロジェクトを右クリックして、[更新]をクリックするだけです。エラーは消えます。私も同じ問題に直面し、それは私のために働いた。


20
OPは彼の質問で、「 'Refresh'は常にこれをクリアします」と述べました。問題は、複雑なプロジェクトで作業したり、ファイルシステムを変更するEclipseの外部のツールと組み合わせたりすると、非常に煩わしいことです。
ryanbrainard 2012年


12

新しいIndigoバージョンの場合、[設定]が[アクセス時に更新]に変わり、詳細な説明が表示されます。ワークスペース経由でアクセスすると、外部ワークスペースの変更が自動的に更新されます。

「リソースがファイルシステムと同期していない」ため、外部ワークスペースを使用するとこの問題が発生するため、このオプションを選択すると問題が解決します。


1
これはメッセージを取り除きました。ありがとう
lsaffie

5

これはいつも私に起こります。

エラーログに移動し、例外を見つけて、根本的な原因のようなものが表示されるまで、いくつかのレベルを開きます。「リソースはファイルシステムと同期していません」と表示されますか?

もちろん、パッケージの名前を変更する場合、Eclipseはファイルシステム内でファイルを移動する必要があります。どうやらどうなるかは、後でクリーンアップする必要があると思う何かの名前が変更されたことを後で発見し、それを見つけることができず、例外をスローすることです。

いくつか試してみてください。最初に、ウィンドウ:環境設定、ワークスペースに移動し、「自動更新」を有効にします。理論的にはこれで問題は解決するはずですが、私にとっては解決しませんでした。

次に、サブパッケージで大規模なリファクタリングを行う場合は、サブパッケージを1つずつボトムアップで実行し、各サブパッケージの名前が変更された後にファイルシステムで明示的に更新します。

3番目に、エラーを無視します。エラーダイアログが表示されたら、[中止]をクリックして、部分的な変更をロールバックする代わりに保持します。何度も何度も試してみてください。複数の再試行を使用して操作全体を完了することができる場合があります。


この後、いくつかのインポートは破損していましたが、簡単な[ インポートの整理]でも修正されました。
z0r 2014

クラスを新しいパッケージに移動するだけで、これを行う必要がありました(エラーを無視して再試行してください)。
z0r 2014

1

(* nix上の)フォルダーを削除しようとしてこれが発生し、更新が役に立たない場合は、ターミナルを開いて、削除しようとしているフォルダーの下のシンボリックリンクを探し、これを手動で削除します。これは私の問題を解決しました。


1

クリアケースビュー内からEclipseワークスペースを開いてプロジェクトの名前を変更しようとすると、ポップアップ警告...「リソース 'プロジェクト'がファイルシステムと同期していません」が頻繁に表示されます。プロジェクトを更新しても問題が解決しない場合は、次の回避策を実行します。ビュー内にない状態でワークスペースを開くb。プロジェクトエクスプローラーでプロジェクトを選択します。ClearCase-> Associate Project(プロジェクトはプロジェクト[]のように見えるはずです)d。プロジェクトを右クリック->更新(vobサブフォルダーは空になっているはずです)e。プロジェクトを右クリック->名前の変更... f。新しい名前を入力してください

これで、ワークスペースを閉じ、ビューで再度開いて、プロジェクトを更新できます。プロジェクトをVOBに関連付けたくない場合は、プロジェクトの関連付けを解除することもできます。


クリアケースは私の犬を盗んだ。
Dominic Cerisano、2016年

1

少しヒント。このメッセージは、名前変更操作中に頻繁に表示されます。Ctrl-Yメッセージを確認してから(ショートカットをやり直す)を押すのが簡単な回避策です。名前の変更が単一のファイルに影響する場合にのみ機能します。


何をしCtrl-Yますか?
z0r 2014

1
Ctrl-Yは「やり直し」です。この特定のケースでは、名前を変更すると、Eclipseで問題が発生し、名前変更操作が取り消されます。Ctrl-Yを押すと、名前変更の試みが回復します。
ワトソン

ああ、なるほど。Ubuntuにはありません。それはですCtrl-Shift-Z。押す理由の説明をCtrl-Y回答に追加することを検討してください:)
z0r

1

あなたが通常のEclipseユーザーである場合は、このエラーが何度も発生する可能性があります。エラーは「ワークスペース内のファイルにEclipseの外部から変更を加えた」と単純に言います。最も簡単な解決策は、プロジェクトを選択してF5キーを押すことです(右クリック->更新)。

詳細な説明が必要な場合は、このWebサイトから読むことができます


0

このエラーは、更新するか、「ネイティブポーリング」ワークスペース機能をオンにしても解決できませんでした。私のプロジェクトも2つの日食で開かれたことがわかりました。他のインスタンスを閉じると、エラーはなくなりました。したがって、このエラーが発生した場合は、プロジェクトが1か所でのみ開かれていることを確認してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.