Eclipse: невозможно создать идентификатор серийной версии

У меня проблема с Eclipse 3.6 (Helios):

В любое время, когда я хочу сгенерировать идентификатор серийной версии (serialVersionUID) для класса, который расширяет класс serializable, я получаю следующее сообщение:

Произошла следующая ошибка: Не удалось найти файл класса. Убедитесь, что файл компилируется.

Что я делаю неправильно?

Спасибо.

Ответ 1

В моем случае я решил эту проблему следующим образом:

Щелкните правой кнопкой мыши проект "Путь сборки" → "Настроить путь сборки" → вкладку "Источник", удалите теги с тегами "отсутствует".

Ответ 2

Иногда инструмент (AspectJ - AJDT, например, другой) удаляет Java-проект проекта, и он не компилируется, пока он не показывает никаких ошибок в редакторе.

Убедитесь, что у вас есть .project файл, содержащий две записи: org.eclipse.jdt.core.javabuilder и org.eclipse.jdt.core.javanature

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>Myproject</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
            <!-- This one is required -->
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>

        <buildCommand>
            <name>org.eclipse.wst.common.project.facet.core.builder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.wst.validation.validationbuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.m2e.core.maven2Builder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
        <nature>org.eclipse.m2e.core.maven2Nature</nature>

            <!-- This one is required too -->
        <nature>org.eclipse.jdt.core.javanature</nature>
        <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
    </natures>
</projectDescription>

Ответ 3

Если у вас есть проблемы с построением (ошибки), eclipse даст

   Could not find class file. Make sure the file is compilable.

ошибка. Удостоверьтесь, что у них нет проблем с вашим пути сборки (например,... Missisng class folders/jars).

Ответ 4

Eclipse использует org.eclipse.jdt.core.javabuilder -Builder для поиска .class -Files. Но либо Builder не запускал, либо не нашел .class файлы.

Уменьшите .project -File до

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>yourprojectsname</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.jdt.core.javanature</nature>
    </natures>
</projectDescription>

Удалите все записи пути построения maven.

Добавьте природу Maven.

Вот и все.

Ответ 5

Существует ошибка: https://bugs.eclipse.org/bugs/show_bug.cgi?id=259506

Помимо изменения файла .project, как заявил Марк, Эндрю Эйзенберг предложил снова попытаться закрыть и открыть проект.

Использование обоих помогло в моем случае.

EDIT: Некоторое время назад я перешел на затмение с помощью интегрированных средств разработки AspectJ. С тех пор у меня есть доступные опции для aspectJ, которые работают каждый раз.

введите описание изображения здесь

Ответ 6

В моем случае также я использовал

Щелкните правой кнопкой мыши проект "Путь сборки" → "Настроить путь сборки" → вкладку "Источник", удалите теги с тегами "отсутствует". Хотя я не уверен, что это повлияет на зависимости проекта от любой вещи.

Ответ 7

Проверьте, включена ли автоматическая сборка. Файл класса необходим для генерации UID с последовательной версией. Если не построить проект и повторить попытку.

Ответ 8

В моем случае у меня было несколько проектов в рабочем пространстве eclipse. Решение состоит в том, чтобы сначала исправить все ваши текущие ошибки проекта, а затем перейти к представлению "Проблемы" и исправить или удалить все ошибки там.

Теперь, если вы заново запустите eclipse quickfix "Добавить сгенерированный серийный номер версии", он должен работать нормально.

Ответ 9

В моем случае (я использую Maven) мне пришлось удалить одну из зависимостей в локальном репозитории, потому что он стал поврежденным. Посмотрите на ошибки, связанные с ошибками чтения.