Плагин Eclipse не может найти класс из папки классов

I'm developing an Eclipse plugin, and want to use some pre-compiled classes which I've put to lib/ folder in my project (so the directory structure looks like {proj_root}/lib/com/example/Required.class). Then I've added lib/ folder as class folder to project's build path. At build time all is working fine, I can import and use that classes in my code. And now the problem is, when I'm running my plugin in separate Eclipse instance I get ClassNotFoundException by my plugin refering to class from precompiled classes folder.

Я попытался указать папку моего класса на вкладке «Заказ и экспорт» в настройках пути сборки. Также я попытался установить флажок в графическом редакторе build.properties плагина перед папкой lib/ для включения в бинарную сборку. В этом случае, если я экспортирую свой плагин в JAR, я вижу внутри него папку lib/ с моими файлами классов, но во время выполнения мой плагин все еще не может найти ни один из классов из lib/.

Can you please give me an advice on how I should tell Eclipse where to find that classes at runtime?
PS.:

  1. Я исследовал stackoverflow по этой проблеме, но все предложения одинаковы: просто добавьте папку класса в путь сборки проекта.
  2. На данный момент в текстовом редакторе build.properties плагина eclipse показывает предупреждение The class folder 'lib/' is not associated to any output library entry. и предлагает сделать эту модификацию кода: output.. = bin/,lib/. Я пробовал это решение, но, похоже, оно ничего не меняет в проблеме.

person xmichael91    schedule 20.08.2013    source источник
comment
взгляните на файл jar, если он содержит нужный вам файл класса.   -  person Philipp Sander    schedule 20.08.2013
comment
Он содержит файл класса (в папке lib/, а не как обычно мои классы, которые хранятся в корне JAR плагина), как я уже сказал, но последний не может быть найден во время выполнения.   -  person xmichael91    schedule 20.08.2013


Ответы (1)


Похоже, вы добавили папку lib на страницу свойств «Путь сборки Java» проекта подключаемого модуля.

Но... для проектов плагинов это не работает, так как это пакеты OSGi - вы должны включить папку lib в редакторе PDE на странице "Время выполнения":

Описание пути к классам для OSGi

person Tonny Madsen    schedule 20.08.2013
comment
О, извините за мой предыдущий комментарий, я не внимательно прочитал ваш совет и попытался добавить библиотеку в редактор build.properties, а не в редактор PDE (plugin.xml). Спасибо за вашу помощь, это сработало. - person xmichael91; 20.08.2013