- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
public static void loadSWT() {
try {
File file = null;
if (PlatformUtils.IS_WINDOWS) {
file = new File("lib/swtwin32.jar"); // x86
if (PlatformUtils.JVM_ARCH.equals("64")) {
file = new File("lib/swtwin64.jar"); // x64
}
} else if (PlatformUtils.IS_OSX) {
file = new File("lib/swtmac32.jar"); // x86
if (PlatformUtils.JVM_ARCH.equals("64")) {
file = new File("lib/swtmac64.jar"); // x64
} else if (PlatformUtils.OS_ARCH.startsWith("ppc")) {
file = new File("lib/swtmaccb.jar"); // carbon
}
} else if (PlatformUtils.IS_LINUX) {
file = new File("lib/swtlin32.jar"); // x86
if (PlatformUtils.JVM_ARCH.equals("64")) {
file = new File("lib/swtlin64.jar"); // x64
}
}
if ((file == null) || !FileUtils.isExistingFile(file)) {
file = new File("lib/swt.jar"); // old system
}
final Method method = URLClassLoader.class.getDeclaredMethod(
"addURL", new Class[] { URL.class });
method.setAccessible(true);
method.invoke(ClassLoader.getSystemClassLoader(), file.toURI()
.toURL());
} catch (final Exception e) {
e.printStackTrace();
}
}
вот так приколачиваем SWT в систему.
особенное веселье в строках 25-28.
Круто! Этот чит еще и недокументированный?
P.S. Установка classpath из внешней обертки нынче не в моде?
таки лучше было бы сразу в classpath кидать, но нет же...
Вот любит гугл эту древнюю доку. Всегда мне ее подсовывает вместо свежих.
Можно без проблем собрать совместимый байт-код вплоть до 1.0
Там есть способ подключения разных нативных библиотек для разных платформ.