Error de enlace insatisfecho y faltan archivos .so al iniciar Eclipse


19

Actualicé a la versión beta 12.04 ayer. Ahora, cuando intento iniciar Eclipse, aparece la pantalla de inicio y luego este mensaje de error:

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

El archivo de registro dice algo como esto:

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 de muchos más mensajes de error.

El /home/gabriel/.swt/lib/linux/x86_64/directorio existe, pero está vacío. También intenté reinstalar eclipse sin éxito.

¿Algunas ideas?


Esto es un error Inicie sesión en Launchpad y regístrese para que esto también le afecte: bugs.launchpad.net/ubuntu/+source/eclipse/+bug/989615
David Edwards

Respuestas:


19

Tengo el mismo problema en una máquina AMD64 (Ubuntu 12.04). y lo resolvió con una solución alternativa:

copia: archivos que contienen '3740' en /usr/lib/jni/libswt-*3740.so a ~ / .swt / lib / linux / x86_64 /

Pero asegúrese de que los paquetes: libswt-gtk-3-java y libswt-gtk-3-jni estén instalados.

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

Y

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

si tiene un sistema basado en 32 bits: sudo cp /usr/lib/jni/libswt-*3740.so ~/.swt/lib/linux/x86/


1
wow, esto también funcionó para mí (Intel Core i5, 64 bit ubuntu 12.04) ¡muchas gracias!
vallllll

1
Funcionó muy bien para un sistema de 32 bits. Usando: sudo cp /usr/lib/jni/libswt-*3740.so ~/.swt/lib/linux/x86/. Gracias y actualice su respuesta por favor.
Binarylife

1
Realmente funciona para mí tampoco (Ubuntu precisa 64 bit). Había creado enlaces blandos en lugar de copiar.
masuch

4

Intenta correr

sudo update-alternatives --config java

y selección open jdk. Esto probablemente funcionaría.


Esto funcionó, pero estoy tratando de evitar el uso openjdk.
Keidax

En realidad, no importa. Solo iré con eso.
Keidax

1
También quería evitar openjdk, así que mira la respuesta de Hanynowsky; ¡funcionó para mí!
Nick Badal

2

También para mí funciona; Yo hice:

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

y así, creé 3 enlaces simbólicos en la carpeta ~ / .swt / lib / linux / x86_64

¡Ahora Eclipse funciona bien!


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

Me lo arregló.


Amo esta solución, la arreglé para todos los usuarios.
Adam Ness

1

Gracias por las excelentes instrucciones. Agregué enlaces simbólicos como este, para asegurarme de que recoge todos los 3740 :

cd ~/.swt/lib/linux/x86_64

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

0

Hice enlaces simbólicos a las bibliotecas faltantes y todo funcionó bien. Terminó luciendo así ...

    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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.