Проект Eclipse Plugin с другими зависимостями проекта - PullRequest
9 голосов
/ 20 мая 2010

У меня есть проект плагина Eclipse, и это зависит от других проектов, которые есть в моем рабочем пространстве Eclipse. После добавления зависимостей проекта в «Java Build Path» -> вкладка «Projects», а также выбора проекта в «Order and Export» я получаю java.lang.NoClassDefFoundError.

Я предполагаю, что другие проекты не были должным образом включены в плагин. Кто-нибудь знает как это исправить?

Спасибо, Джеймс

Ответы [ 2 ]

13 голосов
/ 20 мая 2010

Подключаемый модуль Eclipse управляет зависимостями иначе, чем обычный проект Java.

Я предполагаю, что вы добавляете пакеты с файлами .class.

Определите папку библиотеки в вашем проекте подключаемого модуля Eclipse. Скопируйте любые внешние классы и / или банки в папку библиотеки.

Откройте файл MANIFEST.MF в каталоге META-INF. Вы увидите отформатированный редактор с 8 вкладками внизу.

Нажмите на вкладку Runtime. Добавьте внешние классы и / или банки из папки библиотеки в путь к классам. Это также добавит эти внешние классы и / или jar-файлы в Java Build Path проекта.

Перейдите на вкладку «Зависимости» и добавьте другие проекты Java в диалоговом окне «Импортированные пакеты». Необходимо установить флажок «Показывать неэкспортированные пакеты». Если ваши другие проекты Java являются подключаемыми модулями Eclipse, добавьте их в разделе «Необходимые подключаемые модули».

0 голосов
/ 21 августа 2015

В случае, если вы не в состоянии скопировать зависимый проект в свой проект плагина и уверены в наличии зависимого проекта в целевом затмении, где должен быть установлен плагин, тогда вы можете использовать Runtime.exec() для запуска класса Java, который вы хотите запустить, или ProcessBuilder класс для запуска класса.

Как это:

// To compile
Process p = Runtime.getRuntime().exec("javac yourclass.java"); 
// To execute
Process p2 = Runtime.getRuntime().exec("java yourclass");

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

...