Unikanie „zasobów nie jest zsynchronizowanych z systemem plików”

267

Tworzę kod Java za pomocą Eclipse i regularnie otrzymuję ten komunikat:

zasób nie jest zsynchronizowany z systemem plików.

Kliknij prawym przyciskiem myszy> Odśwież zawsze to wyczyści.

Ale dlaczego Eclipse nie może odświeżyć się automatycznie, gdy znajdzie ten warunek? Czy są przypadki, w których chcesz, aby zasób nie był zsynchronizowany ?.

Jeśli istnieją takie warunki i nie dotyczą one mojej pracy, czy istnieje sposób na automatyczne odświeżanie Eclipse po napotkaniu tego stanu ?. (Doceniam, że powinien on odświeżać tak mało, jak to konieczne w normalnym rozwoju, aby zwiększyć wydajność dla ludzkich programistów).

AKTUALIZACJA (2012-06-25): Moja najnowsza aktualizacja (Wersja: Indigo Release Build id: 20110615-0604) nie wyświetla już Preferencji - Ogólne - Obszar roboczy - Odśwież automatycznie Dostępna jest opcja „Odśwież przy dostępie” - czy powinienem z niej korzystać?

peter.murray.rust
źródło
Dlaczego otrzymujesz wiadomość? Możesz stracić pracę, jeśli nie będziesz ostrożny.
Thorbjørn Ravn Andersen
1
Otrzymuję ten komunikat zawsze, gdy przeszukuję przestrzeń roboczą, ponieważ projekt Serwery (w narzędziach sieciowych) zawiera pliki dziennika, które aktualizują się poza środowiskiem zaćmienia. Do tej pory nie znalazłem żadnego rozwiązania poza Automatycznym odświeżaniem, ale daje to inne problemy (w szczególności: gdy uruchomiona zostanie kompilacja Anta, Eclipse odświeży się w połowie kompilacji Anta i popsunie rzeczy).
Stijn de Witt
może po prostu polizasz projekt, a następnie wybierz „odśwież”?
Junchen Liu
Głupie pytanie: dlaczego „dodatkowa kopia” zasobu jest obowiązkowa? Czy wszyscy zdecydowanie tego potrzebują z towarzyszącą im szansą na „brak synchronizacji”.
nsandersen

Odpowiedzi:

322

Możesz to włączyć w oknie - Preferencje - Ogólne - Obszar roboczy - Odśwież automatycznie (nazywane Odśwież za pomocą rodzimych haczyków lub odpytywania w nowszych kompilacjach)

Preferencje Eclipse „Odśwież za pomocą rodzimych haków lub odpytywania” - zrzut ekranu

Jedynym powodem, dla którego mogę wymyślić, dlaczego ta opcja nie jest domyślnie włączona, jest związana z wydajnością.

Na przykład automatyczne odświeżanie folderów źródłowych może spowodować uruchomienie kompilacji obszaru roboczego. Być może niektórzy ludzie chcą mieć nad tym większą kontrolę.

Jest też artykuł na stronie Eclipse dotyczący automatycznego odświeżania.

Zasadniczo nie ma zewnętrznego wyzwalacza, który powiadomiłby Eclipse o plikach zmienionych poza obszarem roboczym. Zamiast tego wątek w tle jest wykorzystywany przez Eclipse do monitorowania zmian plików, które mogą prowadzić do problemów z wydajnością w dużych obszarach roboczych.

ddewaele
źródło
+1 Czy dzieje się tak tylko w tym stanie? Czy może wystarczy, że wpłynie na mnie gdzie indziej?
peter.murray.rust
1
Mam Preferencje - Ogólne - Obszar roboczy - Odśwież automatycznie. Czy to to samo?
peter.murray.rust
1
Czy jest jakiś sposób, aby automatycznie akceptował zmiany z systemu plików dla otwartych okien edytora, które nie mają niezapisanych zmian?
Leopd
14
Teraz wydaje się, że nazywa się to „Odśwież za pomocą rodzimych haków lub odpytywania” (Indigo SR1).
Oliver Bock,
37

Kliknij prawym przyciskiem myszy plik lub projekt i kliknij Odśwież. Błąd zniknie. Napotkałem również ten sam problem i zadziałało to dla mnie.

bhejaFry
źródło
20
OP wspomniał, że w swoim pytaniu „Odśwież” zawsze to wyczyści ”. Problem polega na tym, że jest to niezwykle denerwujące podczas pracy ze złożonymi projektami lub w połączeniu z narzędziami zewnętrznymi w stosunku do Eclipse, które zmieniają system plików.
ryanbrainard
20

wprowadź opis zdjęcia tutajOkno -> Preferencje -> Ogólne -> Obszar roboczy

hitesh141
źródło
Głosuj na łowcę.
David Lakatos
12

W nowej wersji Indigo Preferencje zmieniają się na „Odśwież przy dostępie” i zawierają szczegółowe objaśnienie: Automatycznie odświeżaj zewnętrzne zmiany obszaru roboczego podczas dostępu za pośrednictwem obszaru roboczego.

Ponieważ „zasób nie jest zsynchronizowany z systemem plików” ten problem występuje, gdy korzystam z zewnętrznego obszaru roboczego, więc po wybraniu tej opcji problem został rozwiązany.

zhihong
źródło
1
Pozbyło się to wiadomości. Dzięki
lsaffie,
5

Cały czas mi się to zdarza.

Przejdź do dziennika błędów, znajdź wyjątek i otwórz kilka poziomów, aż zobaczysz coś więcej jak przyczynę pierwotną. Czy jest napisane: „Zasób nie jest zsynchronizowany z systemem plików”?

Oczywiście podczas zmiany nazw pakietów Eclipse musi przenosić pliki w systemie plików. Najwyraźniej dzieje się tak, że później odkrywa, że ​​coś, co według niego wymaga oczyszczenia, zostało przemianowane, nie może go znaleźć, zgłasza wyjątek.

Jest kilka rzeczy, które możesz spróbować. Najpierw przejdź do Window: Preferencje, Przestrzeń robocza i włącz „Odśwież automatycznie”. Teoretycznie powinno to rozwiązać problem, ale dla mnie tak nie było.

Po drugie, jeśli dokonujesz dużego refaktoryzacji z podpakietami, wykonaj podpakiety pojedynczo, od dołu do góry i jawnie odśwież system plików po zmianie nazwy każdego podpakietu.

Po trzecie, po prostu zignoruj ​​błąd: gdy pojawi się okno dialogowe błędu, kliknij przycisk Przerwij, aby zachować częściową zmianę, zamiast cofać ją. Spróbuj jeszcze raz i jeszcze raz, a może się okazać, że możesz przejść całą operację za pomocą wielu prób.

Jeff Berkowitz
źródło
Kilka moich importów zostało później uszkodzonych, ale szybkie naprawienie importu zorganizowanego również to rozwiązało.
z0r
Musiałem to zrobić (zignoruj ​​błąd i ponów próbę) podczas przenoszenia klasy do nowego pakietu.
z0r
1

Jeśli tak się stanie, próba usunięcia folderu (na * nix) i Odśwież nie pomoże, otwórz terminal i poszukaj dowiązania symbolicznego pod folderem, który próbujesz usunąć i usunąć ręcznie. To rozwiązało moje problemy.

TaninDirect
źródło
1

Gdy otworzysz obszar roboczy Eclipse z poziomu przejrzystego widoku i spróbujesz zmienić nazwę projektu, często pojawi się wyskakujące ostrzeżenie ... „Projekt” zasobów nie jest zsynchronizowany z systemem plików ”. Jeśli odświeżenie projektu nie rozwiąże problemu, wykonaj następujące obejście: Otwórz przestrzeń roboczą BEZ widoku. B. Wybierz projekt w Eksploratorze projektów c. ClearCase -> Associate Project (projekt powinien teraz wyglądać jak projekt []) d. Kliknij projekt prawym przyciskiem myszy -> Odśwież (podfoldery vob powinny być teraz puste) e. Kliknij projekt prawym przyciskiem myszy -> Zmień nazwę ... f. Wpisz nową nazwę

Teraz możesz zamknąć obszar roboczy, otworzyć go ponownie w widoku i odświeżyć projekt. Możesz także oddzielić projekt, jeśli wolisz, aby nie był powiązany z vob.

użytkownik3583015
źródło
Clearcase ukradł mojego psa.
Dominic Cerisano,
1

Mała wskazówka. Komunikat często pojawia się podczas operacji zmiany nazwy. Szybkim obejściem dla mnie jest naciśnięcie Ctrl-Y(ponów skrót) po potwierdzeniu wiadomości. Działa tylko wtedy, gdy zmiana nazwy dotyczy jednego pliku.

wathson
źródło
Co ma Ctrl-Yzrobić?
z0r
1
Ctrl-Y to „ponów”. W tym konkretnym przypadku zmienisz nazwę, a następnie zaćmienie napotka problem i cofnie operację zmiany nazwy. Naciśnięcie Ctrl-Y odzyskuje próbę zmiany nazwy.
wathson
O, rozumiem. Nie w Ubuntu; to jest Ctrl-Shift-Z. Zastanów się nad dodaniem wyjaśnienia, dlaczego naciskasz Ctrl-Yna swoją odpowiedź :)
z0r
1

Jeśli jesteś zwykłym użytkownikiem Eclipse, możesz mieć ten błąd wiele razy. Błąd mówi po prostu: „dokonałeś zmian w plikach w obszarze roboczym z zewnątrz zaćmienia”. Najprostszym rozwiązaniem byłoby wybranie projektu i naciśnięcie F5 (prawy przycisk myszy -> Odśwież).

jeśli potrzebujesz więcej wyjaśnień, możesz przeczytać na tej stronie

BERGUIGA Mohamed Amine
źródło
0

Nie udało mi się rozwiązać tego błędu ani przez odświeżenie, ani przez włączenie funkcji obszaru roboczego „odpytywanie rodzime”. Okazało się, że mój projekt został również otwarty w dwóch przypadkach zaćmienia. Po zamknięciu drugiej instancji błąd zniknął. Upewnij się więc, że Twój projekt jest otwarty tylko w jednym miejscu, jeśli widzisz ten błąd.

nitinsh99
źródło