You can force your 64-bit JVM to run as 32-bit using -d32 , but this is rarely supported . Most 64-bit JDKs do not include 32-bit runtime support.
| Platform | Artifact ID (classifier part) | |---------------|----------------------------------------| | Windows 64-bit | org.eclipse.swt.win32.win32.x86_64 | | Linux 64-bit | org.eclipse.swt.gtk.linux.x86_64 | | macOS 64-bit | org.eclipse.swt.cocoa.macosx.x86_64 | | macOS ARM64 | org.eclipse.swt.cocoa.macosx.aarch64 |
<dependency> <groupId>org.eclipse.platform</groupId> <artifactId>org.eclipse.swt.win32.win32.x86_64</artifactId> <version>3.125.0</version> </dependency> The classifier ( win32.win32.x86_64 ) encodes both OS and architecture. For other platforms:
Stick to Maven artifacts with platform classifiers, and you'll rarely see this error again. Have you run into other SWT native library issues? Share your war stories in the comments below.
For Gradle:
Make sure you choose (e.g., Windows 64-bit , Linux 64-bit , macOS 64-bit ).
file swt-gtk.so If it says x86 (32-bit) and your JVM is x64 (64-bit), you've found the mismatch. Method 1: Download the Correct SWT Build (Manual Fix) Go to the official SWT download page and select your platform + architecture.