Eclipse – cannot start “java.lang.UnsatisfiedLinkError: no swt-pi-gtk”

Dopo un aggiornamento di versione della mia Kubuntu non sono più riuscito ad avviare Eclipse.

Una piccola finestra mi informava di un errore “generico”, la cui descrizione dettagliata poteva essere letta in un file di log (~/.eclipse/org.eclipse.platform_3.7.0_155965261/configuration/1339322725890.log).

Il contenuto del file di log era il seguente:

!SESSION 2012-06-10 12:05:25.814 -----------------------------------
------------
eclipse.buildId=I20110613-1736
java.version=1.7.0_04
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=it_IT
Command-line arguments:  -os linux -ws gtk -arch x86

!ENTRY org.eclipse.osgi 4 0 2012-06-10 12:05:26.682
!MESSAGE Application error
!STACK 1
java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
	no swt-gtk-3740 in java.library.path
	no swt-gtk in java.library.path
	Can't load library: /home/mpmp/.swt/lib/linux/x86/libswt-gtk
-3740.so
	Can't load library: /home/mpmp/.swt/lib/linux/x86/libswt-gtk
.so

	at org.eclipse.swt.internal.Library.loadLibrary(Library.java
:285)
	at org.eclipse.swt.internal.Library.loadLibrary(Library.java
:194)
	at org.eclipse.swt.internal.C.<clinit>(C.java:21)
	at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.ja
va:63)
	at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.ja
va:54)
	at org.eclipse.swt.widgets.Display.<clinit>(Display.java:132)
	at org.eclipse.ui.internal.Workbench.createDisplay(Workbench
.java:695)
	at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:161)
	at org.eclipse.ui.internal.ide.application.IDEApplication.cr
eateDisplay(IDEApplication.java:153)
	at org.eclipse.ui.internal.ide.application.IDEApplication.st
art(IDEApplication.java:95)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Ecl
ipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLaunc
her.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLaunc
her.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Eclip
seStarter.java:344)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Eclip
seStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodA
ccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Delegatin
gMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.ja
va:622)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)

Una rapida ricerca su Google, mi ha portato qui. In questo link ho trovato un banale work-around per risolvere la questione:

cp /usr/lib/jni/libswt-*3740.so ~/.swt/lib/linux/x86

Se questa soluzione non vi sarà di aiuto, vi invito a visitare il link, dove sono presenti altri possibili rimedi.

Buona risoluzione! 😉