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

Ultrastar Deluxe

El Karaoke para Linux La llegada de la Navidad significa reuniones con familiares y amigos, lo que nos lleva a buscar formas de entretenimiento. Una de ellas es el karaoke , y como no podría ser de otra manera en GNU/Linux tenemos nuestra opción Open Source, se trata de UltraStar Deluxe (para mí la mejor opción), que está basado en el primer Ultrastar aunque bastante más completo y fácil de usar. Esta aplicación es un clon libre de Singstar con el que podrás cantar cualquier canción e incluso crear la tuya propia. Si estáis interesados en instalarlo puedes añadir el repositorio para Ubuntu o bajarlo desde la página oficial en caso de usar otra distribución. sudo add-apt-repository ppa:tobydox/ultrastardx sudo apt-get update sudo apt-get install ultrastar-deluxe Una vez instalado sólo quedará añadir canciones . Como no podía ser de otra manera, existe una comunidad muy activa que nos proporciona gran cantidad de material listo para ser usado, una de ellas es Ultrastar

Descargar Packet Tracer 5.2 [Windows y Linux]

Packet Tracer 5.2 [Windows y Linux] Packet Tracer es la herramienta de aprendizaje y simulación de redes interactiva para los instructores y alumnos de Cisco CCNA. Esta herramienta les permite a los usuarios crear topologías de red, configurar dispositivos, insertar paquetes y simular una red con múltiples representaciones visuales. Packet Tracer se enfoca en apoyar mejor los protocolos de redes que se enseñan en el currículum de CCNA. Este producto tiene el propósito de ser usado como un producto educativo que brinda exposición a la interfaz comando – línea de los dispositivos de Cisco para practicar y aprender por descubrimiento. Packet Tracer 5.2 es la última versión del simulador de redes de Cisco Systems, herramienta fundamental si el alumno está cursando el CCNA o se dedica al networking. En este programa se crea la topología física de la red simplemente arrastrando los dispositivos a la pantalla. Luego clickando en ellos se puede ingresar

Rootear en Ubuntu un teléfono Android

Tengo un teléfono con Android, concretamente un Motorola Defy, y resulta que en Android, basado en Linux, eres un simple usuario y solo puedes realizar algunas tareas. Otras te están vetadas. Conseguir los permisos de superusuario, se llama entre los entendidos rootear el móvil. En principio es una operación que no entraña riesgos, pero en esta vida todo puede fallar. Así que debe quedar claro que si decides rootear el teléfono, lo haces bajo tu propia responsabilidad. También debes entender, que si rooteas el teléfono, los SAT aprovechan para lavarse las manos de cualquier problema y anular la garantía. Y por último, debes saber que es posible que ya no recibas las actualizaciones automáticas de Android. Para rootear teléfonos se utiliza una aplicación llamada Superoneclick . En mi caso, esta parece ser la única solución. Pero este es un programa para Windows, por lo que.... Afortunadamente, esta escrito en .NET, por lo que vamos a poder ejecutarlo con MONO en nuestro