Evitando "o recurso está fora de sincronia com o sistema de arquivos"

267

Desenvolvo código Java com o Eclipse e recebo regularmente esta mensagem:

O recurso está fora de sincronia com o sistema de arquivos.

Clique com o botão direito do mouse> Atualizar e sempre limpará isso.

Mas por que o Eclipse não pode atualizar automaticamente quando encontra essa condição? Existem casos em que você deseja que o recurso fique fora de sincronia?

Se houver tais condições e elas não se aplicarem ao meu trabalho, existe uma maneira de fazer o Eclipse atualizar automaticamente quando encontrar esse estado ?. (Compreendo que ele deve atualizar o mínimo necessário no desenvolvimento normal para aumentar o desempenho dos desenvolvedores humanos.)

ATUALIZAÇÃO (25-06-2012): Minha atualização mais recente (Versão: ID da versão Indigo Release: 20110615-0604) não mostra mais Preferências - Geral - Área de trabalho - Atualizar automaticamente Existe uma opção "Atualizar ao acessar" - devo usar isso?

peter.murray.rust
fonte
Por que você recebeu a mensagem? Você pode perder o trabalho se não for cuidadoso.
Thorbjørn Ravn Andersen
1
Recebo essa mensagem sempre quando procuro na área de trabalho, porque o projeto Servidores (nas ferramentas da web) contém arquivos de log que são atualizados constantemente fora do eclipse. Até o momento, não encontrei nenhuma solução além do Refresh Automaticamente, mas isso fornece outros problemas (especificamente: quando alguma construção do Ant é executada, o Eclipse atualiza a metade da construção do Ant e estraga tudo).
Stijn de Witt
talvez apenas clique direito no projeto e selecione "atualizar"?
Junchen Liu
Pergunta boba: Por que "uma cópia extra" de um recurso é obrigatória? Todo mundo definitivamente precisa disso com a chance de ficar "fora de sincronia".
Nsandersen

Respostas:

322

Você pode habilitá-lo em Janela - Preferências - Geral - Área de trabalho - Atualizar automaticamente (chamado Atualizar usando ganchos nativos ou pesquisa em construções mais recentes)

Preferências do Eclipse "Atualizar usando ganchos ou pesquisas nativas" - Screenshot

A única razão pela qual consigo pensar por que isso não está ativado por padrão está relacionada ao desempenho.

Por exemplo, a atualização automática de pastas de origem pode desencadear uma compilação da área de trabalho. Talvez algumas pessoas queiram mais controle sobre isso.

Há também um artigo no site do Eclipse sobre atualização automática.

Basicamente, não há acionador externo que notifique o Eclipse sobre arquivos alterados fora do espaço de trabalho. Em vez disso, um encadeamento em segundo plano é usado pelo Eclipse para monitorar alterações de arquivo que podem levar a problemas de desempenho em grandes áreas de trabalho.

ddewaele
fonte
+1 Isso acontece apenas durante esta condição? Ou isso acontecerá o suficiente para me afetar em outro lugar?
Peter.murray.rust
1
Tenho Preferências - Geral - Área de trabalho - Atualizar automaticamente. Isso é o mesmo?
Peter.murray.rust
1
Existe alguma maneira de aceitar automaticamente alterações do sistema de arquivos para janelas abertas do editor que não tenham alterações não salvas?
Leopd
14
Agora parece ser chamado "Atualizar usando ganchos nativos ou pesquisas" (Indigo SR1).
Oliver Bock
37

Apenas clique com o botão direito do mouse no arquivo ou no projeto e clique em Atualizar. O erro desaparecerá. Eu também enfrentei o mesmo problema e funcionou para mim.

bhejaFry
fonte
20
O OP mencionou que em sua pergunta, "'Atualizar' sempre limpará isso". O problema é que isso é incrivelmente irritante ao trabalhar com projetos complexos ou em conjunto com ferramentas externas ao Eclipse que estão alterando o sistema de arquivos.
Ryanbrainard 26/10/12
20

insira a descrição da imagem aquiJanela -> Preferências -> Geral -> Área de Trabalho

hitesh141
fonte
Vote em caçador.
David Lakatos
12

Para a nova versão do Indigo, as Preferências mudam para "Atualizar ao acessar" e com uma explicação detalhada: Atualize automaticamente as alterações externas da área de trabalho ao acessar através da área de trabalho.

Como “o recurso está fora de sincronia com o sistema de arquivos”, esse problema ocorre quando eu uso o espaço de trabalho externo; portanto, depois de selecionar essa opção, o problema é resolvido.

zhihong
fonte
1
Isso se livrou da mensagem. Graças
lsaffie
5

Isso acontece comigo o tempo todo.

Vá para o log de erros, encontre a exceção e abra alguns níveis até poder ver algo mais parecido com uma causa raiz. Diz "O recurso está fora de sincronia com o sistema de arquivos"?

Ao renomear pacotes, é claro, o Eclipse precisa mover arquivos no sistema de arquivos. Aparentemente, o que acontece é que depois descobre que algo que acha que precisa limpar foi renomeado, não consegue encontrá-lo, lança uma exceção.

Há algumas coisas que você pode tentar. Primeiro, vá para Janela: Preferências, Área de trabalho e ative "Atualizar automaticamente". Em teoria, isso deveria resolver o problema, mas, para mim, não.

Segundo, se você estiver realizando uma refatoração grande com subpacotes, faça os subpacotes um de cada vez, de baixo para cima e atualize explicitamente com o sistema de arquivos após o renomeamento de cada subpacote.

Terceiro, ignore o erro: quando a caixa de diálogo de erro aparecer, clique em Abortar para preservar a alteração parcial, em vez de revertê-la. Tente novamente, e novamente, e você poderá concluir toda a operação usando várias tentativas.

Jeff Berkowitz
fonte
Algumas das minhas importações estavam corrompidas depois disso, mas uma rápida Importação de Organizações também foi corrigida.
Z0R
Eu precisava fazer isso (ignorar o erro e tentar novamente) ao mover uma classe para um novo pacote.
Z0R
1

Se isso ocorrer ao tentar excluir uma pasta (no * nix) e o Refresh não ajudar, abra um terminal e procure um link simbólico abaixo da pasta que você está tentando excluir e remover manualmente. Isso resolveu meus problemas.

TaninDirect
fonte
1

Quando você abre um espaço de trabalho do Eclipse a partir de uma visualização em caixa vazia e tenta renomear o projeto, geralmente recebe o aviso pop-up ... “O recurso 'projeto' está fora de sincronia com o sistema de arquivos”. Se a atualização do projeto não resolver o problema, execute a seguinte solução alternativa: a. Abrir espaço de trabalho SEM estar em uma visualização b. Selecione o projeto no Project Explorer c. ClearCase -> Projeto Associado (o projeto agora deve se parecer com o projeto []) d. Clique com o botão direito do mouse em projeto -> Atualizar (as subpastas da vob agora devem estar vazias) e. Clique com o botão direito do mouse em projeto -> Renomear ... f. Digite o novo nome

Agora você pode fechar o espaço de trabalho, reabri-lo em uma exibição e atualizar o projeto. Você também pode dissociar o projeto se preferir que o projeto não seja associado ao vob.

user3583015
fonte
Clearcase roubou meu cachorro.
Dominic Cerisano
1

Uma pequena dica. A mensagem geralmente aparece durante a operação de renomeação. A solução rápida para mim é pressionar Ctrl-Y(refazer atalho) após a confirmação da mensagem. Funciona apenas se a renomeação afetar um único arquivo.

wathson
fonte
O que Ctrl-Yfaz?
Z0r 06/06/19
1
Ctrl-Y é "refazer". Nesse caso em particular, você renomeia algo e o eclipse encontra um problema e desfaz a operação de renomeação. Pressionar Ctrl-Y recupera a tentativa de renomear.
Wathson 14/07
Ah entendo. Não no Ubuntu; ele é Ctrl-Shift-Z. Considerar a adição da explicação de por que você pressionar Ctrl-Ya sua resposta :)
Z0R
1

Se você é um usuário regular do Eclipse, pode ter esse erro várias vezes. O erro diz simplesmente: "você fez alterações nos arquivos no seu espaço de trabalho a partir do eclipse externo". A solução mais simples seria selecionar o projeto e pressionar F5 (clique com o botão direito do mouse em -> Atualizar).

se você precisar de mais explicações, pode ler neste site

BERGUIGA Mohamed Amine
fonte
0

Não foi possível resolver esse erro atualizando ou ativando o recurso da área de trabalho "pesquisa nativa". Acabou que o meu projeto também foi aberto em duas instâncias do eclipse. Depois que fechei a outra instância, o erro desapareceu. Portanto, verifique se o seu projeto está aberto apenas em um local se você estiver vendo esse erro.

nitinsh99
fonte