java eclipse ubuntu unsatisfiedlinkerror

java - Eclipse no puede cargar bibliotecas SWT



ubuntu unsatisfiedlinkerror (12)

Asegúrese de que su partición doméstica esté montada con permisos ejecutables. Ese es el valor predeterminado, pero si lo monta sin la opción exec, obtendrá este error.

Cada vez que intento abrir Eclipse en Ubuntu 12.04 obtengo un error de enlace insatisfecho y no se abre. Recientemente instalé el Java JDK y el SDK de Android, ¿podría ser este el problema? Seguí este tutorial .

Aquí está la información de registro:

!SESSION 2012-04-15 21:05:46.902 ----------------------------------------------- eclipse.buildId=I20110613-1736 java.version=1.7.0 java.vendor=Oracle Corporation BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_GB Command-line arguments: -os linux -ws gtk -arch x86_64 !ENTRY org.eclipse.osgi 4 0 2012-04-15 21:05:47.885 !MESSAGE Application error !STACK 1 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/tom/.swt/lib/linux/x86_64/libswt-gtk-3740.so Can''t load library: /home/tom/.swt/lib/linux/x86_64/libswt-gtk.so at org.eclipse.swt.internal.Library.loadLibrary(Library.java:285) at org.eclipse.swt.internal.Library.loadLibrary(Library.java:194) at org.eclipse.swt.internal.C.<clinit>(C.java:21) at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:63) at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:54) at org.eclipse.swt.widgets.Display.<clinit>(Display.java:132) at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:695) at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:161) at org.eclipse.ui.internal.ide.application.IDEApplication.createDisplay(IDEApplication.java:153) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:95) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) at org.eclipse.equinox.launcher.Main.run(Main.java:1410) at org.eclipse.equinox.launcher.Main.main(Main.java:1386)

He intentado desinstalar y reinstalar, y eliminar el directorio ~/.eclipse pero todavía no funciona


En mi caso, faltaba /usr/lib/jni directorio /usr/lib/jni . Arreglado por

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

No hay necesidad de un enlace simbólico después. Eclipse comenzó normalmente.


En redhat7:

yum install gtk2 libXtst xorg-x11-fonts-Type1

Hizo el trabajo, debido a una dependencia swt.

encontrado here


Encontré este error cuando intenté iniciar la compilación de 32 bits de Eclipse bajo Linux de 64 bits. El problema se resolvió después de instalar el paquete ia32-libs.


Estoy de acuerdo con Scott, lo que enumeró funcionó. Sin embargo, simplemente ejecutarlo desde cualquier directorio no funcionó. Tuve que cd a los archivos / home / * /.swt/lib/linux/x86_64/ 0

Primero el directorio y luego ejecute el comando de enlace:

Para 32 bits:

ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86/

Y en Ubuntu 12.04 64 bit:

ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86_64/



Resuelto:

Debido a que había instalado Oracle Java 7, había cambiado Java por defecto a Oracle Java 7, sin embargo, tenía que ser el Open JDK.

Para arreglarlo, abre el terminal y escribe

sudo update-alternatives --config java

Esto trae una lista de los diferentes tipos de Java. Simplemente seleccione el Open JDK.


Si inicia eclipse utilizando Oracle Java, entonces Eclipse podría fallar en la búsqueda de bibliotecas nativas como SWT o SVN. Las bibliotecas SWT-JNI están ubicadas en / usr / lib / jni / y las bibliotecas SVN-JNI están ubicadas en / usr / lib / x86_64-linux-gnu / jni /.

En lugar de iniciar eclipse con el comando

eclipse

puedes usar el comando

env LD_LIBRARY_PATH=/usr/lib/jni/:/usr/lib/x86_64-linux-gnu/jni/:$LD_LIBRARY_PATH eclipse

para pasar la variable de entorno LD_LIBRARY_PATH a eclipse. Eclipse encontrará las bibliotecas nativas y se ejecutará correctamente.


Simplemente especifique la ruta a las bibliotecas:

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


Un método posiblemente más genérico es:

  • instalar la versión sin cabeza del openjdk,
  • Instalar, ejecutar y cerrar eclipse.
  • desinstalar el openjdk
  • instalar el JDK de Oracle

en mi Ubuntu 12.04 32 bit . Edito el comando para:

ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86/

Y en Ubuntu 12.04 64 bit prueba:

ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86_64/


Can''t load library: /home/tom/.swt/lib/linux/x86_64/libswt-gtk-3740.so Can''t load library: /home/tom/.swt/lib/linux/x86_64/libswt-gtk.so

Parece que las bibliotecas deberían estar en .swt / lib / linux / x86_64 / si no las hay, puedes probar este comando:

locate libswt-gtk.so

esto debería encontrar las bibliotecas copiar todo el directorio a /home/tom/.swt/lib/linux/x86_64