Wednesday, April 19, 2006

Eclipse UnsatisfiedLinkError: libswt-pi-gtk-3139

I ran into this a bit ago and found no solutions online. I figured it was my duty to provide at least one posting on how I solved it, since there seems to be a lot of frustrated people out there. My eventual solution was to run with 1.5 instead of 1.4.

Upon starting Eclipse 3.1.1 or higher (or other SWT-based apps, it seems) under AMD64-based Linux, many people have reported the following error:

!ENTRY org.eclipse.osgi 2006-04-08 13:53:48.407
!MESSAGE Application error
!STACK 1
java.lang.UnsatisfiedLinkError: /usr/local/src/eclipse/configuration/org.eclipse.osgi/bundles/85/1/.cp/libswt-pi-gtk-3139.so: /usr/local/src/eclipse/configuration/org.eclipse.osgi/bundles/85/1/.cp/libswt-pi-gtk-3139.so: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1586)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1495)
at java.lang.Runtime.loadLibrary0(Runtime.java:788)

...etc

The .so in question is present, but it seems that when running under Sun's JDK 1.4.2, which does not provide an AMD64 version, this library can't be successfully loaded. I'm not saying this is a Java issue or an Eclipse issue, but I resolved it by running Eclipse under Sun's JDK 1.5 built for AMD64.

Hopefully this helps anyone else out there searching for a solution.

4 comments:

Anonymous said...

Try to add the path to the jvm (java virtual machine)

Example:

/home/username/bin/eclipse/eclipse -vm /usr/lib/jvm/java-1.4.2-sun/bin/java -vmargs -Xmx256M

Anonymous said...

Had this problem on suse 10.0 + amd64. Used your fix in conjunction with one of the comments:

"./eclipse -vm /usr/local/java/jdk1.5.0_07/bin/java -vmargs -Xmx256M"

Thanks!

nbil

Anonymous said...

Hi folks,
it worked for me on Suse10, AMD64, Eclipse3.2 with jdk1.5 and adding the path to the jvm as the last comment said.

Thanks!
mic.

Vasco Figueira said...

Do you, desperate eclipse user, have the noexec flag set in /etc/fstab for /home?

libswt-gtk is in your .eclipse subdirectory (in your home)... and it's supposed to be "executed".

That was my error. Just in case it's yours too.