Eclipse rcp classloader ад:перемещенный класс все еще виден во время компиляции, но больше не во время выполнения

StackOverflow https://stackoverflow.com/questions/1206795

Вопрос

У меня странная и новая проблема с приложением eclipse 3.5 rcp:Все работало нормально, затем я изменил запущенную систему и переместил один класс из одного плагина в зависимый плагин.Никакой большой проблемы, но внезапно приложение выдает жалобу на исключение class not found (или NoClassDefFoundError - точно не знаю, но посмотрю его и отредактирую сообщение ...)

Я удваиваю, утрояю, ...проверил все, что я знаю, и убедился, что манифест содержит зависимость с правильным номером версии и что пакет правильно экспортирован в другой плагин.Eclipse jdk не жалуется (ошибок / предупреждений компилятора нет), но когда я отлаживаю только до того момента, когда создается экземпляр класса, и использую 'CTRL + SHIFT + I' для проверки инструкции 'new MyClass()', во всплывающей подсказке inspectors говорится, что он не может разрешить этот класс.

Любая помощь, подсказка и ободряющий комментарий высоко ценятся!

Это было полезно?

Решение 2

Решил проблему просто случайно (и не имею ни малейшего представления, была ли это ошибка или особенность ...):

Проект плагина, в который я переместил класс, имел структуру папок, подобную maven, с src / main / java и src / test / java, обе папки определены как исходные папки.

Просто потому, что я хотел попробовать почти все, я изменил эту структуру обратно на типичную структуру eclipse, используя только src в качестве единственной исходной папки.

И, после очередной "очистки проекта", он снова запускается.Странно...?

Редактировать

спасибо за подсказку, структура папок была просто опечаткой в этом посте.

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

Другие советы

Я также столкнулся с NoClassDefFoundError в приложении RCP Eclipse 3.5 Galileo, где у меня была папка src / java в одном плагине, и мне нужно было экспортировать пакет для использования другим плагином.

Решением для меня оказалось включение папки bin в качестве части пути к классу времени выполнения. Обычно это было необходимо только для включения. папку.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top