Unbefriedigter Link-Fehler und fehlende .so-Dateien beim Starten von Eclipse

19

Ich habe gestern ein Upgrade auf die Beta 12.04 durchgeführt. Wenn ich nun versuche, Eclipse zu starten, wird der Begrüßungsbildschirm angezeigt und anschließend die folgende Fehlermeldung:

An error has occurred. See the log file /home/gabriel/.eclipse/org.eclipse.platform_3.7.0_155965261/configuration/1335382319394.log .

In der Protokolldatei heißt es ungefähr so:

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/gabriel/.swt/lib/linux/x86_64/libswt-gtk-3740.so
    Can't load library: /home/gabriel/.swt/lib/linux/x86_64/libswt-gtk.so

gefolgt von vielen weiteren Fehlermeldungen.

Das /home/gabriel/.swt/lib/linux/x86_64/Verzeichnis existiert, ist aber leer. Ich habe auch versucht, Eclipse erneut zu installieren, ohne Erfolg.

Irgendwelche Ideen?

Keidax
quelle
Das ist ein Fehler. Bitte loggen Sie sich in Launchpad ein und registrieren Sie, dass dies auch Sie betrifft: bugs.launchpad.net/ubuntu/+source/eclipse/+bug/989615
David Edwards

Antworten:

19

Ich habe das gleiche Problem bei einem AMD64-Rechner (Ubuntu 12.04). und löste es durch eine Problemumgehung:

Kopieren: Dateien, die '3740' enthalten, in /usr/lib/jni/libswt-*3740.so nach ~ / .swt / lib / linux / x86_64 /

Stellen Sie jedoch sicher, dass die Pakete libswt-gtk-3-java und libswt-gtk-3-jni installiert sind.

sudo apt-get install libswt-gtk-3-jni libswt-gtk-3-java

Und

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

Wenn Sie ein 32-Bit-System haben: sudo cp /usr/lib/jni/libswt-*3740.so ~/.swt/lib/linux/x86/

Hanynowsky
quelle
1
wow das hat eigentlich auch bei mir funktioniert (Intel Core i5, 64 Bit Ubuntu 12.04) vielen Dank!
Vallllll
1
Funktionierte hervorragend für ein 32-Bit-System. Mit: sudo cp /usr/lib/jni/libswt-*3740.so ~/.swt/lib/linux/x86/. Danke und aktualisiere deine Antwort bitte.
Binarylife
1
Es funktioniert auch wirklich für mich (Ubuntu präzise 64-Bit). Ich hatte Softlinks anstelle von Kopien erstellt.
Masuch
4

Versuche zu rennen

sudo update-alternatives --config java

und Auswahl open jdk. Das würde wahrscheinlich funktionieren.

Lelouch Lamperouge
quelle
Dies hat funktioniert, aber ich versuche, die Verwendung zu vermeiden openjdk.
Keidax
Eigentlich egal. Ich gehe einfach mit.
Keidax
1
Ich wollte auch openjdk vermeiden, also schau dir Hanynowskys Antwort an. es hat bei mir funktioniert!
Nick Badal
2

Auch bei mir funktioniert es; Ich getan:

cd ~/.swt/lib/linux/x86_64
ln -s /usr/lib/jni/libswt-atk-gtk-3740.so
ln -s /usr/lib/jni/libswt-gtk-3740.so
ln-s /usr/lib/jni/libswt-pi-gtk-3740.so

und so habe ich 3 symlink im ordner ~ / .swt / lib / linux / x86_64 erstellt

Jetzt funktioniert Eclipse einwandfrei!

Luca122131
quelle
2
echo "-Djava.library.path=/usr/lib/jni" >> /etc/eclipse.ini

reparierte es für mich.

Dale E. Moore
quelle
Lieben Sie diese Lösung, regelte sie für alle Benutzer.
Adam Ness
1

Danke für die tolle Anleitung. Stattdessen habe ich Symlinks wie diese hinzugefügt, um sicherzustellen, dass alle 3740-Elemente übernommen werden :

cd ~/.swt/lib/linux/x86_64

for i in /usr/lib/jni/*3740*.so ; do ln -s $i; done
Henry
quelle
0

Ich habe Symlinks zu den fehlenden Bibliotheken erstellt und alles hat gut funktioniert. Am Ende sah es so aus ...

    libswt-atk-gtk-3740.so -> /usr/lib/jni/libswt-atk-gtk-3740.so
    libswt-gtk-3740.so -> /usr/lib/jni/libswt-gtk-3740.so
    libswt-pi-gtk-3740.so -> /usr/lib/jni/libswt-pi-gtk-3740.so

Scheint zu funktionieren.

Noel
quelle