Избегайте «ресурс не синхронизирован с файловой системой»

233

Я разрабатываю Java-код с Eclipse и регулярно получаю это сообщение:

Ресурс

не синхронизирован с файловой системой.

Щелкните правой кнопкой мыши > Refresh, это всегда очистит.

Но почему Eclipse не может автоматически обновляться при обнаружении этого условия? Есть случаи, когда вы хотите, чтобы ресурс не синхронизировался?

Если есть такие условия, и они не применяются к моей работе, есть ли способ заставить Eclipse обновляться автоматически, когда он сталкивается с этим состоянием?. (Я ценю, что он должен обновляться настолько, насколько это необходимо для нормальной разработки, для повышения производительности для человеческих разработчиков.)

ОБНОВЛЕНИЕ (2012-06-25): Мое последнее обновление (версия: Indigo Release Build ID: 20110615-0604) больше не показывает Настройки - Общие - Рабочее пространство - Автоматическое обновление Существует опция "Обновить при доступе" - следует ли использовать это?

  • 0
    Почему вы получаете сообщение? Вы можете потерять работу, если не будете осторожны.
  • 1
    Я всегда получаю это сообщение при поиске в рабочей области, поскольку проект «Серверы» (в веб-инструментах) содержит файлы журналов, которые обновляются вне затмения. До сих пор я не нашел никакого решения, кроме автоматического обновления, но это дает другие проблемы (в частности: когда запускается какая-то сборка Ant, Eclipse обновит половину сборки Ant и все испортит).
Показать ещё 2 комментария
Теги:

9 ответов

296
Лучший ответ

Вы можете включить это в Window - Preferences - General - Workspace - автоматически обновить (например, Refresh using native hooks или опрос в новых сборках)

Единственная причина, по которой я могу понять, почему это по умолчанию не включена, связана с производительностью.

Например, обновление исходных папок автоматически может вызвать сборку рабочей области. Возможно, некоторые люди хотят большего контроля над этим.

Существует также статья на сайте Eclipse относительно автоматического обновления.

В принципе, нет внешнего триггера, который уведомляет Eclipse о файлах, которые были изменены за пределами рабочей области. Скорее фоновый поток используется Eclipse для мониторинга изменений файлов, которые могут привести к проблемам с производительностью с большими рабочими областями.

  • 0
    +1 Это происходит только во время этого состояния? Или это произойдет достаточно, чтобы повлиять на меня в другом месте?
  • 1
    У меня есть Настройки - Общие - Рабочая область - Обновлять автоматически. Это то же самое?
Показать ещё 11 комментариев
35

Просто щелкните правой кнопкой мыши на файле или в проекте и нажмите "Обновить". Ошибка исчезнет. Я также столкнулся с той же проблемой, и это сработало для меня.

  • 20
    ОП упомянул, что в своем вопросе «Обновить» это всегда прояснит ». Проблема в том, что это невероятно раздражает при работе со сложными проектами или в сочетании с внешними по отношению к Eclipse инструментами, которые изменяют файловую систему.
20

Изображение 6771 Окно → Настройки → Общие → Рабочее пространство

  • 2
    Какой смысл переписывать ответ выше?
  • 0
    Голосуй за охотника.
12

Для новой версии Indigo настройки меняются на "Обновить при доступе" и с подробным объяснением: автоматически обновлять внешние изменения рабочей области при доступе через рабочую область.

Поскольку "ресурс не синхронизирован с файловой системой", эта проблема возникает, когда я использую внешнее рабочее пространство, поэтому после выбора этой опции проблема решена.

  • 1
    Это избавилось от сообщения. Спасибо
5

Это происходит со мной все время.

Перейдите в журнал ошибок, найдите исключение и откройте несколько уровней, пока не увидите что-то большее, как первопричина. Говорит ли он: "Ресурс не синхронизирован с файловой системой"?

При переименовании пакетов, конечно же, Eclipse должен перемещать файлы в файловой системе. Видимо, что происходит, так это то, что позже выясняется, что то, что он считает необходимым очистить, было переименовано, не может найти его, выдает исключение.

Есть несколько вещей, которые вы можете попробовать. Сначала перейдите в Window: Preferences, Workspace и включите "Обновить автоматически". Теоретически это должно решить проблему, но для меня это не так.

Во-вторых, если вы делаете большой рефакторинг с субпакетами, делайте подпакеты по одному, снизу вверх и явно обновляйте файловую систему после переименования каждого подпакета.

В-третьих, просто проигнорируйте ошибку: когда появится диалоговое окно с ошибкой, нажмите "Прервать", чтобы сохранить частичное изменение, вместо того, чтобы его перевернуть. Повторите попытку и снова, и вы можете обнаружить, что вы можете пройти всю операцию с помощью нескольких попыток.

  • 0
    Некоторые из моих импортных файлов были повреждены после этого, но быстрый « Организованный импорт» тоже это исправил.
  • 0
    Мне нужно было сделать это (игнорировать ошибку и повторить попытку), просто переместив класс в новый пакет.
1

Если вы являетесь обычным пользователем Eclipse, вы можете получить эту ошибку много раз. Ошибка просто говорит: "вы внесли изменения в файлы в вашем рабочем пространстве извне затмения". Самое простое решение - выбрать проект и нажать F5 (Щелкните правой кнопкой мыши → Обновить).

если вам нужно больше объяснений, вы можете прочитать на этом веб-сайте

1

Когда вы открываете рабочее пространство Eclipse из прозрачного представления и пытаетесь переименовать проект, вы часто получите всплывающее предупреждение... Проект "Ресурс" не синхронизирован с файловой системой ". Если обновление проекта не устраняет проблему, выполните следующее обходное решение: a. Открытое рабочее пространство БЕЗ в представлении b. Выберите проект в Project Explorer c. ClearCase → Associate Project (проект должен теперь выглядеть как проект []) d. Щелкните правой кнопкой мыши проект → Обновить (подпапки vob теперь должны быть пустыми) e. Щелкните правой кнопкой мыши проект → Переименовать... f. Введите новое имя

Теперь вы можете закрыть рабочее пространство, снова открыть его в представлении и обновить проект. Вы также можете отделить проект, если вы предпочитаете, чтобы проект не ассоциировался с vob.

  • 0
    Прозрачный ящик украл мою собаку.
1

Небольшой намек. Сообщение часто появляется во время операции переименования. Быстрое обходное решение для меня - нажатие Ctrl-Y (повторный ярлык) после подтверждения сообщения. Он работает только в том случае, если переименование влияет на один файл.

  • 0
    Что делает Ctrl-Y ?
  • 1
    Ctrl-Y - это «повторить». В этом конкретном случае вы переименовываете что-то, затем затмение сталкивается с проблемой и отменяет операцию переименования. Нажатие Ctrl-Y восстанавливает попытку переименования.
Показать ещё 1 комментарий
1

Если это происходит при попытке удалить папку (в * nix), а Refresh не помогает, откройте терминал и найдите символическую ссылку под папкой, которую вы пытаетесь удалить, и удалите это вручную. Это решило мои проблемы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню