UnsatisfiedLinkError: no swt-pi-gtk-3550

0

When I launch an application created with Eclipse RCP it is always aborted with an UnsatisfiedLinkError error.

user@maquina:~> ./aplicacion.sh
Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-pi-gtk-3550 or swt-pi-gtk in swt.library.path, java.library.path or the jar file
        at org.eclipse.swt.internal.Library.loadLibrary(Library.java:254)
        at org.eclipse.swt.internal.Library.loadLibrary(Library.java:159)
        at org.eclipse.swt.internal.gtk.OS.<clinit>(OS.java:22)
        at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:63)
        at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:54)
        at org.eclipse.swt.widgets.Display.<clinit>(Display.java:131)
        at com.app.APPimageProvider.init(APPimageProvider.java:47)
        at com.app.APPclientGUI.<init>(APPclientGUI.java:301)
        at com.app.APPmain.<init>(APPmain.java:77)
        at com.app.APPmain.main(APPmain.java:107)

I am using a SLES 11 Release 1 machine.
The library that says not to find is located in /usr/lib/libswt-pi-gtk-3550.so . It is the library file, not a link.
Uninstalling and installing eclipse does not fix anything.
ldconfig /usr/lib/libswt-gtk-3550.so does not solve it either.

    
asked by Jose Antonio Dura Olmos 21.10.2016 в 08:03
source

2 answers

0

The swt-pi-gtk-3550 that you can not find is inside a jar:

mkdir temp
cd temp
jar xvf /camino/org.eclipse.swt.gtk.linux.x86_3.5.0.v3550b.jar
ls libswt-pi-gtk-3550.so

And in fact yes that it finds it, the message of error of the JVM is not very good. What happens is that you can not load the library because it lacks a prerequisite:

ldd libswt-pi-gtk-3550.so
       linux-gate.so.1 =>  (0xffffe000)
        libgtk-x11-2.0.so.0 => not found
        libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xf7704000)
        libXtst.so.6 => /usr/lib/libXtst.so.6 (0xf76fd000)
        libc.so.6 => /lib/libc.so.6 (0xf759c000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xf7581000)
        librt.so.1 => /lib/librt.so.1 (0xf7577000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xf74b0000)
        libpcre.so.0 => /usr/lib/libpcre.so.0 (0xf747c000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0xf7349000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0xf7338000)
        /lib/ld-linux.so.2 (0xf77a9000)
        libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0xf7335000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0xf7317000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0xf7312000)
        libdl.so.2 => /lib/libdl.so.2 (0xf730d000)

The "not found" indicates that libgtk-x11-2.0.so.0 is missing
When you install it, the application works

zypper install libgtk-x11-2.0.so.0
    
answered by 26.09.2017 / 12:59
source
2

In this thread link comment that it is solved like this:

  

on Ubuntu 12.04 32 bit .

ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86/
  

and on Ubuntu 12.04 64 bit test:

ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86_64/
    
answered by 21.10.2016 в 08:22