Erro de link insatisfatório e arquivos .so ausentes ao iniciar o Eclipse

19

Eu fiz o upgrade para o 12.04 beta 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 assim:

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 muitas outras mensagens de erro.

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

Alguma idéia?

    
por Keidax 25.04.2012 / 21:41

6 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, certifique-se de que os pacotes: libswt-gtk-3-java & amp; 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 /

    
por Hanynowsky 30.04.2012 / 07:11
4

Tente executar

sudo update-alternatives --config java

e seleção open jdk . Isso provavelmente funcionaria.

    
por Lelouch Lamperouge 25.04.2012 / 21:51
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

e assim, eu criei 3 symlink na pasta ~ / .swt / lib / linux / x86_64

Agora o Eclipse funciona bem!

    
por Luca122131 10.05.2012 / 18:10
2
echo "-Djava.library.path=/usr/lib/jni" >> /etc/eclipse.ini

consertou para mim.

    
por Dale E. Moore 25.07.2012 / 13:05
1

Obrigado pelas ótimas instruções. Eu adicionei links simbólicos como este, para ter certeza de pegar todos os 3740 :

cd ~/.swt/lib/linux/x86_64

for i in /usr/lib/jni/*3740*.so ; do ln -s $i; done
    
por henry 28.05.2012 / 22:32
0

Eu fiz symlinks para as bibliotecas perdidas e tudo funcionou bem. Acabou parecendo 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.

    
por noel 10.05.2012 / 09:36