KNIME Startup Issue on openSUSE Tumbleweed (SWT UnsatisfiedLinkError)

I am consistently encountering a startup error with the KNIME Analytics Platform (5.8.0, native ZIP) on openSUSE Tumbleweed.

Problem Description
KNIME fails to launch immediately after execution, throwing a java.lang.UnsatisfiedLinkError when attempting to load the native SWT library. This is strongly suspected to be related to the system’s highly current GTK/WebKit version in openSUSE Tumbleweed conflicting with the version expected by Eclipse/KNIME’s SWT.

Any ideas hiw to solve this ?

Cheers Alex

Hi @Alexander_Stolz ,

Welcome to the KNIME forum.

The problem you are facing with the KNIME Analytics Platform is a common technical conflict between software versions on Linux.

KNIME is built using a technology called Eclipse which uses something called SWT (Standard Widget Toolkit) to draw its menus, buttons, and windows on your screen.

You are using openSUSE Tumbleweed, which is a “rolling release” distribution. This means you always have the absolute newest versions of all system software.

The java.lang.UnsatisfiedLinkError means:
“KNIME tried to use a specific function from one of your system’s graphics libraries (GTK/WebKit), but it couldn’t find it because your version is much newer than what KNIME expected or was built with.”

It’s like trying to plug an old VCR into a brand-new smart TV without an adapter—the connectors just don’t match up anymore.

Solution 1: Clear the KNIME Cache

KNIME saves temporary files in a hidden folder in your home directory. Deleting this cache sometimes forces the program to re-initialize correctly:

  1. Open your file manager or terminal.

  2. Navigate to your home folder (~).

  3. Delete the folder named .swt (it has a dot at the beginning, so you might need to enable “show hidden files”).

  4. Try launching KNIME again.

Solution 2: Use the System’s GTK Libraries

You can try telling Java to explicitly use the graphical libraries installed on your operating system, rather than the ones packaged within KNIME.

  1. Locate your knime.ini file in the main KNIME installation folder.

  2. Edit the file and add the following line after the -vmargs line:

    -Dorg.eclipse.swt.browser.UseWebKitGTK=true
    
    
  3. Save the file and restart KNIME

Please let us know if the above two process solves your issue. If not, you have to install the matching version of libswt-gtk library (but in this case, I don’t know what else will break or will not. I am not a Linux expert).

thanks for warm welcoming :wink: i tried both solutions and unfortunetly the problem is still the same … i love Knime and Tumbleweed, too. I don’t want to choose between them so i think i will wait for another tips or try to run it with bottles or boxes … Thank you for the fast answer.

Hi @Alexander_Stolz ,

There is another workaround I found. Try this if this works for you. I found it on the internet.

You can try forcing KNIME to use the older GTK2 libraries, which are often more compatible, by setting the SWT_GTK3 environment variable to 0.

Open your terminal and run the following command:

SWT_GTK3=0 ./knime

Can you please check and let us know if this solution works for you.

I was’nt successful –> Terminal Message: GTK2 is not supported by knime anymore

This is the last step (you have to know which library and version to install):

1. Search for the package

You can use zypper search to verify the package name and its availability in your configured repositories:

bash

zypper search eclipse-swt

This command will list packages matching the name eclipse-swt and show details like their status and version.

2. Install the package

To install the eclipse-swt package and its dependencies, use zypper install with superuser (root) privileges:

bash

sudo zypper install eclipse-swt

You can also install related GTK and WebKit libraries, as conflicts often arise from missing dependencies of the core SWT library:

bash

sudo zypper install libgtk-3-0 libwebkitgtk-4_0-0

Advanced Troubleshooting with zypper

If installing the packages above doesn’t resolve the UnsatisfiedLinkError, the error message in your terminal likely specifies the exact native library file (.so file) that failed to load (e.g., libswt-pi4-gtk-*.so).

You can use the zypper what-provides (or zypper wp) command to find out which installed or available package contains that specific file:

# Example: Replace 'missing_library_file.so' with the actual file name from your error message
sudo zypper wp missing_library_file.so

The output will show you the exact package name needed, which you can then install using sudo zypper install <package_name>.

You can check this command as well:

zypper search libswt-gtk

And see which Library works for you and which version.