Evitar "el recurso no está sincronizado con el sistema de archivos"


267

Desarrollo código Java con Eclipse y regularmente recibo este mensaje:

El recurso no está sincronizado con el sistema de archivos.

Haga clic derecho> Actualizar siempre borrará esto.

Pero, ¿por qué Eclipse no puede actualizarse automáticamente cuando encuentra esta condición? ¿Hay casos en los que desea que el recurso no esté sincronizado?

Si existen tales condiciones y no se aplican a mi trabajo, ¿hay alguna forma de hacer que Eclipse se actualice automáticamente cuando se encuentra con este estado? (Aprecio que se actualice tan poco como sea necesario en el desarrollo normal para aumentar el rendimiento para los desarrolladores humanos).

ACTUALIZACIÓN (2012-06-25): Mi última actualización (Versión: Indigo Release ID de compilación: 20110615-0604) ya no muestra Preferencias - General - Espacio de trabajo - Actualizar automáticamente Hay una opción "Actualizar al acceder" - ¿Debo usar esto?


¿Por qué recibes el mensaje? Puede perder el trabajo si no tiene cuidado.
Thorbjørn Ravn Andersen

1
Me sale este mensaje siempre cuando busco espacio de trabajo, debido a que el proyecto de Servidores (en herramientas web) contiene los archivos de registro que mantienen la actualización de Eclipse exterior. Hasta ahora no he encontrado ninguna solución aparte de Actualizar automáticamente, pero eso da otros problemas (específicamente: cuando se ejecuta una compilación de Ant, Eclipse actualizará a la mitad la compilación de Ant y arruinará las cosas).
Stijn de Witt

tal vez simplemente lamer el proyecto y luego seleccionar "actualizar"?
Junchen Liu

Pregunta tonta: ¿Por qué es obligatoria "una copia extra" de un recurso? ¿Definitivamente todo el mundo necesita esto con la posibilidad de "perder la sincronización"?
nsandersen

Respuestas:


322

Puede habilitar esto en Ventana - Preferencias - General - Espacio de trabajo - Actualizar automáticamente (llamado Actualizar usando enlaces nativos o sondeo en versiones más recientes)

Preferencias de Eclipse "Actualizar usando ganchos nativos o sondeo" - Captura de pantalla

La única razón por la que puedo pensar por qué esto no está habilitado de manera predeterminada está relacionada con el rendimiento.

Por ejemplo, la actualización automática de las carpetas de origen puede desencadenar una compilación del espacio de trabajo. Quizás algunas personas quieran tener más control sobre esto.

También hay un artículo en el sitio de Eclipse sobre la actualización automática.

Básicamente, no hay un disparador externo que notifique a Eclipse de los archivos modificados fuera del espacio de trabajo. Más bien, Eclipse utiliza un subproceso en segundo plano para supervisar los cambios en los archivos que posiblemente pueden conducir a problemas de rendimiento con grandes espacios de trabajo.


+1 ¿Esto solo sucede durante esta condición? ¿O sucederá lo suficiente como para afectarme en otro lugar?
peter.murray.rust 03 de

1
Tengo Preferencias - General - Espacio de trabajo - Actualizar automáticamente. ¿Es esto lo mismo?
peter.murray.rust 03 de

1
¿Alguna forma de que acepte automáticamente los cambios del sistema de archivos para las ventanas abiertas del editor que no tienen cambios no guardados?
Leopd


14
Ahora parece llamarse "Actualizar usando ganchos o sondeos nativos" (Indigo SR1).
Oliver Bock

37

Simplemente haga clic derecho en el archivo o en el proyecto y haga clic en Actualizar. El error desaparecerá. También enfrenté el mismo problema y funcionó para mí.


20
El OP mencionó que en su pregunta, "'Actualizar' siempre aclarará esto". El problema es que esto es increíblemente molesto cuando se trabaja con proyectos complejos o junto con herramientas externas a Eclipse que están cambiando el sistema de archivos.
ryanbrainard


12

Para la nueva versión de Indigo, las Preferencias cambian a "Actualizar al acceder", y con una explicación detallada: Actualiza automáticamente los cambios del espacio de trabajo externo al acceder a través del espacio de trabajo.

Como "el recurso no está sincronizado con el sistema de archivos", este problema ocurre cuando uso el espacio de trabajo externo, por lo que después de seleccionar esta opción, el problema se resolvió.


1
Esto eliminó el mensaje. Gracias
lsaffie

5

Esto me pasa todo el tiempo.

Vaya al registro de errores, encuentre la excepción y abra algunos niveles hasta que pueda ver algo más como una causa raíz. ¿Dice "El recurso no está sincronizado con el sistema de archivos"?

Al cambiar el nombre de los paquetes, por supuesto, Eclipse tiene que mover archivos en el sistema de archivos. Aparentemente, lo que sucede es que luego descubre que algo que cree que necesita ser limpiado ha sido renombrado, no puede encontrarlo, arroja una excepción.

Hay un par de cosas que puedes probar. Primero, vaya a Ventana: Preferencias, Espacio de trabajo y habilite "Actualizar automáticamente". En teoría, esto debería solucionar el problema, pero para mí no fue así.

En segundo lugar, si está realizando una refactorización grande con subpaquetes, realice los subpaquetes de uno en uno, de abajo hacia arriba, y actualice explícitamente con el sistema de archivos después de cambiar el nombre de cada subpaquete.

Tercero, simplemente ignore el error: cuando aparezca el cuadro de diálogo de error, haga clic en Abortar para preservar el cambio parcial, en lugar de revertirlo. Inténtelo una y otra vez, y puede descubrir que puede completar toda la operación utilizando múltiples reintentos.


Algunas de mis importaciones fueron corruptas después de esto, pero un rápido Organize Imports también lo solucionó.
z0r

Necesitaba hacer esto (ignorar el error y volver a intentarlo) cuando solo movía una clase a un nuevo paquete.
z0r

1

Si esto ocurre tratando de eliminar una carpeta (en * nix) y Actualizar no ayuda, abra una terminal y busque un enlace simbólico debajo de la carpeta que está tratando de eliminar y elimínelo manualmente. Esto resolvió mis problemas.


1

Cuando abre un espacio de trabajo de Eclipse desde una vista clara e intenta cambiar el nombre del proyecto, a menudo recibirá la advertencia emergente ... "El 'proyecto' de recursos no está sincronizado con el sistema de archivos". Si actualizar el proyecto no soluciona el problema, realice la siguiente solución: a. Espacio de trabajo abierto SIN estar en una vista b. Seleccione el proyecto en Project Explorer c. ClearCase -> Proyecto asociado (el proyecto ahora debería verse como el proyecto []) d. Haga clic con el botón derecho en el proyecto -> Actualizar (las subcarpetas vob ahora deberían estar vacías) e. Haga clic con el botón derecho en el proyecto -> Cambiar nombre ... f. Ingrese nuevo nombre

Ahora puede cerrar el espacio de trabajo, volver a abrirlo en una vista y actualizar el proyecto. También puede disociar el proyecto si prefiere que el proyecto no esté asociado con el vob.


Clearcase robó mi perro.
Dominic Cerisano

1

Una pequeña pista El mensaje a menudo aparece durante la operación de cambio de nombre. La solución rápida para mí es presionar Ctrl-Y(rehacer acceso directo) después de la confirmación del mensaje. Funciona solo si el cambio de nombre afecta a un solo archivo.


¿Qué Ctrl-Yhacer?
z0r

1
Ctrl-Y es "rehacer". En este caso particular, cambia el nombre de algo y luego eclipse encuentra un problema y deshace la operación de cambio de nombre. Al presionar Ctrl-Y se recupera el intento de cambio de nombre.
wathson

Ah, ya veo. No en Ubuntu; es Ctrl-Shift-Z. Considere agregar la explicación de por qué presiona Ctrl-Ya su respuesta :)
z0r

1

Si es un usuario habitual de Eclipse, es posible que haya recibido este error muchas veces. El error simplemente dice: "ha realizado cambios en los archivos en su espacio de trabajo desde el eclipse externo". La solución más simple sería seleccionar el proyecto y presionar F5 (clic derecho -> Actualizar).

si necesita más explicaciones puede leer desde este sitio web


0

No pude resolver este error actualizando o activando la función de espacio de trabajo "sondeo nativo". Resultó que mi proyecto también se abrió en dos instancias de eclipse. Una vez que cerré la otra instancia, el error desapareció. Por lo tanto, asegúrese de que su proyecto solo se abra en un lugar si ve este error.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.