если вы хотите иметь одну сборку, которая работает на разных платформах (Win / Mac / Linux / * nix) или архитектурах (32/64 бит), тогда вы можете связать файл SWT jar для каждой целевой платформы с вашим установщиком, а затем загрузите правильный динамически во время выполнения (или попросите вашего установщика скопировать правильный файл SWT во время установки).
например. скажем, вы хотите поддерживать 32- и 64-битные Windows и Linux, у вас были бы файлы SWT:
lib/swt_win_32.jar
lib/swt_win_64.jar
lib/swt_linux_32.jar
lib/swt_linux_32.jar
Сделайте так, чтобы ваш скрипт / установщик ant включал в себя все это (они имеют размер около 1,6 МБ каждый), а затем во время выполнения в вашем коде вы можете определять ОС и архитектуру, используя системные свойства Java
System.getProperty("os.name");
System.getProperty("os.arch");
чтобы создать имя правильного файла jar.
Загрузка jar во время выполнения может быть выполнена с помощью пользовательского загрузчика классов или путем вызова защищенного метода URLClassloader.addURL(URL url)
с использованием отражения.
Я поместил рабочий код для выполнения этой задачи на моем сайте: http://www.chrisnewland.com/select-correct-swt-jar-for-your-os-and-jvm-at-runtime-191
Если вы можете выдержать запах кода, то это быстрое решение очень распространенной проблемы SWT.