Разработка проекта Java Eclipse на 32-битных и 64-битных системах Linux - PullRequest
4 голосов
/ 04 декабря 2010

У меня есть ряд связанных проектов, которые я поместил под контроль Git (все эти проекты находятся в одной рабочей области, которая является верхним уровнем хранилища Git) и клонирован с моего рабочего стола (32 бита) на мой ноутбук (64 бита), поэтому я могу работать с ними где угодно. Папка рабочей области .metadata исключена, но все в папках проекта отслеживается.

Когда я открыл клонированное рабочее пространство на ноутбуке, меня встретила ошибка:

Project 'project' is missing required library:
'/usr/eclipse/plugins/org.eclipse.swt.gtk.linux.x86_3.5.2.v3557f.jar'

Очевидно, что 64-битное затмение не имеет 32-битных библиотек, но мне любопытно, как это должно быть решено.

Эта библиотека была добавлена ​​как часть шаблона проекта Window Builder SWT / JFace. В папке плагинов eclipse есть org.eclipse.swt_3.5.2.v3557f.jar, но изменение пути к классам для поиска этого не работает (как ни странно, не находит SWT). Просматривая остальную часть файла .classpath для проектов SWT / JFace, эта конкретная библиотека является only , которая так специфична для платформы.

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

Могу ли я просто соединить 64-битную банку на ноутбуке с 32-битным именем, чтобы classpath мог найти библиотеку? Есть ли другое, лучшее решение?

UPDATE : Похоже, что этот тип проекта должен зависеть от конкретного фрагмента SWT, поэтому, пока нет лучшего решения, я собираюсь использовать символическую ссылку на рассматриваемые фрагменты на обеих машинах, чтобы направить компилятор к нужному фрагменту. Сборка / запуск проектов на других машинах (и особенно на Windows) будет !! но я построю этот мост, когда доберусь туда.

Ответы [ 4 ]

1 голос
/ 04 декабря 2010

Что именно вы держите в своем контроле исходного кода?

Лучше всего хранить в исходном хранилище только рукописные исходные файлы. Не двоичные файлы, не сгенерированные файлы и не настройки IDE.

Я думаю, у вас проблема с настройками IDE для вашего 64-битного Eclipse, не работающего с 32-битным.

Просто удалите каталог .metadata в своем рабочем пространстве и повторно импортируйте все проекты в этом Eclipse.

1 голос
/ 04 декабря 2010

Какой тип проекта вы разрабатываете? Проект Java или проект плагина?

Если вы разрабатываете проект подключаемого модуля, ваш проект не должен напрямую зависеть от конкретного фрагмента SWT (например, swt.gtk, swt.win32). От плагина хоста 'org.eclipse.swt' должно зависеть, что фактическая реализация swt - это разные фрагменты на разных платформах.

Если вы разрабатываете Java-проект, для которого требуется SWT в качестве стороннего требования. Вы можете установить дельта-пакет eclipse для 32-битного и 64-битного затмения.

1 голос
/ 04 декабря 2010

Не делайте этого со всем рабочим пространством. Просто сделайте это с отдельными проектами. Хорошо работает здесь.

0 голосов
/ 04 декабря 2010

Чтобы избежать проблем с платформой, вы также можете рассмотреть Maven.Используя Maven 2 или 3, с необязательной комбинацией профилей, проблемы с платформой могут быть решены довольно легко.Используя несколько плагинов Maven для Eclipse, проекты Maven можно напрямую импортировать в Eclipse.

...