web-dev-qa-db-fra.com

Erreur de lien non satisfaite et fichiers .so manquants lors du démarrage d'Eclipse

Je suis passé à la version 12.04 bêta hier. Maintenant, lorsque j'essaie de démarrer Eclipse, je reçois l'écran de démarrage, puis ce message d'erreur:

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

Le fichier journal dit quelque chose comme ceci:

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

suivi par beaucoup plus de messages d'erreur.

Le répertoire /home/gabriel/.swt/lib/linux/x86_64/ existe, mais est vide. J'ai également essayé de réinstaller Eclipse sans succès.

Des idées?

19
Keidax

J'ai le même problème sur une machine AMD64 (Ubuntu 12.04). et résolu par une solution de contournement:

copie: fichiers contenant '3740' in /usr/lib/jni/libswt-*3740.so to ~/.swt/lib/linux/x86_64 /

Mais assurez-vous que les paquets: libswt-gtk-3-Java & libswt-gtk-3-jni sont installés.

Sudo apt-get install libswt-gtk-3-jni libswt-gtk-3-Java

Et

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

si vous avez un système basé sur 32 bits: Sudo cp /usr/lib/jni/libswt-*3740.so ~/.swt/lib/linux/x86 /

19
Hanynowsky

Essayez de courir

Sudo update-alternatives --config Java

et selection open jdk. Cela fonctionnerait probablement.

4
Lelouch Lamperouge

Aussi pour moi cela fonctionne; J'ai fait:

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

et ainsi, j'ai créé 3 liens symboliques dans le dossier ~/.swt/lib/linux/x86_64

Maintenant, Eclipse fonctionne bien!

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

corrigé pour moi.

2
Dale E. Moore

Merci pour les excellentes instructions. J'ai ajouté des liens symboliques comme celui-ci à la place, pour être sûr qu'il prenne tout 74:

cd ~/.swt/lib/linux/x86_64

for i in /usr/lib/jni/*3740*.so ; do ln -s $i; done
1
henry

J'ai créé des liens symboliques vers les bibliothèques manquantes et tout a bien fonctionné. Ça a fini par ressembler à ça ...

    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

Semble travailler.

0
noel