Erro de Link Insatisfeito e arquivos .so ausentes ao iniciar o Eclipse

19

Atualizei para a versão 12.04 ontem. Agora, quando tento iniciar o Eclipse, recebo a tela inicial e, em seguida, esta mensagem de erro:

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

O arquivo de log diz algo como isto:

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

seguido por muito mais mensagens de erro.

O /home/gabriel/.swt/lib/linux/x86_64/diretório existe, mas está vazio. Eu também tentei reinstalar o eclipse sem sucesso.

Alguma ideia?

Keidax
fonte
Isso é um bug. Por favor, faça o login no Launchpad e registre que isso também afeta você: bugs.launchpad.net/ubuntu/+source/eclipse/+bug/989615
David Edwards

Respostas:

19

Eu tenho o mesmo problema em uma máquina AMD64 (Ubuntu 12.04). e resolvido por uma solução alternativa:

copy: arquivos contendo '3740' em /usr/lib/jni/libswt-*3740.so para ~ / .swt / lib / linux / x86_64 /

Mas, verifique se os pacotes libswt-gtk-3-java e libswt-gtk-3-jni estão instalados.

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

E

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

se você tiver um sistema baseado em 32 bits: sudo cp /usr/lib/jni/libswt-*3740.so ~/.swt/lib/linux/x86/

Hanynowsky
fonte
1
wow isso realmente funcionou para mim também (Intel core i5, ubuntu 12.04 de 64 bits) muito obrigado!
vallllll
1
Funcionou muito bem para um sistema de 32 bits. Usando: sudo cp /usr/lib/jni/libswt-*3740.so ~/.swt/lib/linux/x86/. Obrigado e atualize sua resposta, por favor.
Binarylife
1
Também funciona para mim (Ubuntu precisa de 64 bits). Eu criei links flexíveis em vez de copiar.
masuch
4

Tente correr

sudo update-alternatives --config java

e seleção open jdk. Provavelmente isso funcionaria.

Lelouch Lamperouge
fonte
Isso funcionou, mas estou tentando evitar o uso openjdk.
Keidax
Na verdade, não importa. Eu apenas vou com isso.
Keidax
1
Eu também queria evitar o openjdk, então confira a resposta de Hanynowsky; funcionou para mim!
Nick Badal
2

Também para mim funciona; Eu fiz:

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

então criei 3 links simbólicos na pasta ~ / .swt / lib / linux / x86_64

Agora o Eclipse funciona bem!

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

consertou para mim.

Dale E. Moore
fonte
Adoro esta solução, corrigida para todos os usuários.
Adam Ness
1

Obrigado pelas ótimas instruções. Adicionei links simbólicos como este para garantir que todos os 3740 sejam capturados :

cd ~/.swt/lib/linux/x86_64

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

Eu fiz links simbólicos para as bibliotecas ausentes e tudo funcionou bem. Acabou assim:

    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

Parece funcionar.

noel
fonte