Ir al contenido principal

Arreglar error de SWT en ejecución de eclipse con Java (Versión Oracle)


A modo de breve introducción Eclipse es un IDE (Entorno de desarrollo integrado) que permite escribir el código fuente de un programa pudiendo ejecutar en él lenguajes como Java y Python, entre sus ventajas se encuentra el resaltado de sintaxis y el detector de errores de sintaxis así como sugerencias para corregirlos entre muchas características mas.
Recientemente ocupé instalar eclipse (y así lo hice), pero tuve un problema a la hora de ejecutarlo lo que me llevo a buscar la solución en varios foros, les dejo la solución que encontré por si le es de utilidad a alguien.
El problema puede suceder si recientemente instalamos la versión Java de Oracle, en caso de existir algún problema nos saldrá la siguiente imagen (con el correspondiente nombre del archivo del error)
Error_eclipse
Como la imagen dice, para saber que ocurrió hay que ir a la ruta que especifica y revisar el log, en mi caso lo que encontré fue un archivo de texto con lo siguiente:
!SESSION 2012-08-20 16:34:33.221 ———————————————–
eclipse.buildId=I20110613-1736
java.version=1.7.0_06
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=es_MX
Command-line arguments: -os linux -ws gtk -arch x86_64
!ENTRY org.eclipse.osgi 4 0 2012-08-20 16:34:34.657
!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/#usuario#/.swt/lib/linux/x86_64/libswt-gtk-3740.so
Can’t load library: /home/#usuario#/.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)
Lo anterior viene siendo el error que quiero explicar como solucionar, al examinar el texto pueden confirmarse que utilizo la versión proporcionada por Oracle y también que no se detectan las librerías de SWT. Puede solucionarse el error de dos formas, reubicando las librerías SWT o si se actualizó accidentalmente a la versión de Oracle, volviendo a OpenJDK

Para volver a openJDK

Abrimos una terminal y tecleamos
sudo update-alternatives --config java
Nos aparecerá una lista con números y la ruta de las versiones de java que tenemos instaladas (siendo las mas probables openjdk 6, open jdk 7 y java-oracle). Solo habrá que introducir el número de la ruta que contenga openjdk y presionar la tecla enter. Una vez hecho esto deberíamos poder abrir eclipse normalmente utilizando open jdk.

Para seguir utilizando la versión Java de Oracle

Nos aseguraremos que las librerías estén instaladas
sudo apt-get install libswt-gtk-3-jni libswt-gtk-3-java
Luego iremos al directorio /usr/lib/jni/ y copiaremos todo lo que esté dentro de la carpeta a ~/.swt/lib/linux/x86_64/
Como recordatorio, en el último directorio puede verse que la carpeta está oculta, accederemos a ella yendo a la carpeta personal y presionando (Ctrl + H)

Resumen

Cuando instalamos el JDK (Java Development Kit) de Oracle puede suceder que las librerías SWT no se ubiquen donde las busque Eclipse, lo que causará que no podamos abrir eclipse, para poder abrirlo de la forma usual puede establecerse openJDK como opción predeterminada o reubicar las librerías a donde se necesitan. Es una solución simple pero que si necesitas abrir eclipse urgentemente puede evitar perder tiempo y sacarte de una emergencia.
También agrego que el problema no ocurre siempre y depende totalmente desde donde y como se haya instalado Java, si alguien experimenta este fallo puede arreglarlo así, de no experimentarlo… mucho mejor : )
Uno de los lectores nos cuenta su experiencia:
La versión de java que tengo instalada en maquina es la del repositorio de duinsoft — JAVA version 7 actualizacion 5 (compilacion 1.7.0_05-b05)

Entradas populares de este blog

ISO Master, crea y modifica tus ISO’s fácilmente

&lt;a href="http://ubuntu.com/getubuntu" title="Descarga Ubuntu"&gt; &lt;img src="http://www.marcelor.com/wp-content/uploads/199_164_ubuntu.png" alt="Descarga Ubuntu."/&gt; &lt;/a&gt; Ha sido liberada la versión 1.3.7 de ISO Master, aplicación que te permite crear y modificar archivos ISO9660 (imágenes ISO). Principales funcionalidades: Crear una imagen ISO desde el principio. Añadir o eliminar archivos y directorios en o desde una imagen de CD. Crear CDs de arranque utilizando diferentes tipos de registros de arranque: no emulación (isolinux, Microsoft Windows), 1,2, 1,44 y 2,88 de emulación de disquete. Apoyo a Rock Ridge y nombres de archivo Joliet. Iso Master es una aplicación de código abierto y está disponible en versión linux y windows. No disponible aún en los repositorios de Ubuntu http://www.littlesvr.ca/isomaster/download/

Reproducir Full-HD con VLC

Antes que nada aclaro que no van a poder ver CUALQUIER VIDEO en Full-HD. Depende mucho el bitrate. Probé con varios trailers y anda bien, pero videos de mayor bitrate van a seguir dando saltos. El problema insalvable es que el procesador Intel Atom N270 a 1.6ghz no tiene el poder de proceso necesario para poder ver sin problemas videos más pesados. Con probar de todas formas no se pierde nada, así que empecemos: Abrimos VLC . Nos dirigimos al menú Tools y Preferences. Abajo a la izquierda donde dice Show Settings cliqueamos en All . A la izquierda nos metemos en Input / Codecs > Video-codecs > FFmpeg . A la derecha tildamos Allow speed tricks , y donde dice Skip the loop filter for H.264 decoding , seleccionamos All. Abajo de eso, tildamos Hardware Decoding. Les quedaría así:

Heimdall: Odin Alternative That Runs On Linux (Tool To Flash ROMs On Samsung Galaxy S Devices)

Heimdall is a cross-platform (runs on Linux, Windows and Mac OSX), open source Odin alternative which uses the same protocol as Odin to interact with a device in download mode, that can be used to flash Android ROMs or Kernels onto Samsung Galaxy S phones. The application officially supports Samsung Galaxy S GT-I9000 (8GB) from UK and Galaxy S GT-I9000 (16GB) from Australia, but users have reported that it also works with the Captivate, Vibrant, Fascinate, Mesmerize, Epic 4G, Galaxy S 4G, Infuse 4G, GT-I9000T, Galaxy Tab (7 and 10.1 inches), Galaxy S II, and the international GT-I9000. And indeed, at least for Samsung Galaxy S II, I can confirm that Heimdall works as I've tested it myself. Before using Heimdall, remember that flashing has the potential to brick your phone so use it carefully! Flashing ROMs onto your device may also void your warranty! For the steps required to flash an Android ROM from Linux onto your Samsung device using Hei...