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?


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/


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.


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!


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

consertou para mim.


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

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.