17 febrero 2010

Problema con botones de Eclipse en Ubuntu 9.10 Karmic Koala

Aquí se trata el problema de los botones en Eclipse corriendo en Ubuntu 9.10 (Karmic Koala) y una forma de ejecutar Eclipse cómodamente incluyendo la solución del mismo.


Primero que nada un link a la guía de Ubuntu para Eclipse donde en la sección Problemas con botones en Ubuntu 9.10 Karmic Koala se encuentra mencionado el problema y su solución. Ahí también se encuentra un link al reporte oficial del bug que lo genera.

Básicamente lo que dice es que dicho bug se encuentra resuelto para la próxima versión de Eclipse (3.5.2 >=) pero no así para la 3.5.1, que es la última estable al momento de publicar este artículo.

Como se puede ver en la guía de Ubuntu, la solución pasa por definir una variable antes de ejecutar Eclipse, y para esto sugiere crear un script el cual deberemos ejecutar cada vez que deseemos abrirlo, lo cual ya deja de ser tan simple como correr el ejecutable de Eclipse.
Por esto último, a continuación listo los pasos para crear un ejecutable incluyendo la solución.


Paso 1. Crear el script
Este paso es hacer lo que sugiere la solución de la guía Ubuntu que es crear un script, el cual se encargará de setear la variable GDK_NATIVE_WINDOWS y de correr el Eclipse ubicado en el directorio que recibe por parámetro. Así entonces, y como base para que funcionen los demás pasos, hay que crear un archivo de nombre eclipserun.sh dentro de la carpeta de eclipse y escribir en este las siguientes líneas,

#!/bin/sh
export GDK_NATIVE_WINDOWS=1
$1eclipse


Paso 2. Crear el programaCreamos un archivo con nombre eclipserun.c y escribimos dentro de este el siguiente código (que esta en lenguaje C).
#include <stdio.h>
#include <unistd.h>
#include <string.h>
int main() {
int i;
int lpath;
char cmds[512];
char path[249];
cmds[0] = 0;

// obtengo el path absoluto donde esta ubicado el ejecutable
lpath = readlink("/proc/self/exe", path, sizeof(path));
for( i = lpath; '/' != path[i]; i-- );
path[++i] = 0;

// armo el comando para ejecutar el script ubicado donde el ejecutable
strcat(cmds, path);
strcat(cmds, "eclipserun.sh ");
strcat(cmds, path);

// ejecuto es script
return system(cmds);
}

Este define un programa que ejecutará el script del paso anterior. Primero obtiene el path donde corre el ejecutable para así ubicar el script y pasarle a este la ruta donde levantar el Eclipse. La necesidad de obtener el path es a causa de poder luego crear enlaces al ejecutable y poder ubicarlos en cualquier lado.
Por último realiza una llamada al sistema para correr el script. Por más información se puede consultar la especificación de la función system.


Paso 3. Crear el ejectuable
Para crear el ejecutable desde consola basta con, estando ubicado en el directorio donde se encuentra el archivo eclipserun.c, ejecutar el siguiente comando

gcc -O3 eclipserun.c -o eclipserun

Este creará un ejecutable con el nombre eclipserun. La flag O3 (letra O, número 3) es para optimizar el tiempo de ejecución del ejecutable, pero en caso de fallar la compilación se puede bajar la exigencia usando en lugar O2, O1 o O, o simplemente no usar flag algúna.


Paso 4. Ubicar el ejecutable
Lo que hace el segundo comando que ejecuta el script es correr el ejecutable de Eclipse. Este se define con ruta absoluta a donde se encuentra el nuevo ejecutable creado en el paso 2, por lo tanto este mismo debería ubicarse en el mismo directorio donde se encuentra el ejecutable de Eclipse.
Claro esta que puede definirse otra ruta en dicho comando, o escribir el programa para que reciba la ruta por parámetro o demás formas que haya, pero aquí se simplifico de modo que baste con ubicar el ejecutable nuevo en la carpeta de eclipse.


Paso 5. Levantar Eclipse
De ahora en más, para levantar el Eclipse sin problemas basta simplemente con correr el nuevo ejecutable cada vez.
Si se tienen links, lanzadores o demás, ahora lo único que se debe hacer es modificarlos para correr el nuevo ejecutable en lugar del ejecutable eclipse.



Terminada la explicación, dejo algunos links de interés.



2 comentarios:

  1. Anónimo10/4/10

    ola jejej fijate q segui los pasos al pie de la letra y no mas no jala jeje soy nuevo en linux y no se que hacer jeje me puedes hechar la mano? al ejecutar el ejecutable de eclipse que trae cuando descargue al darle 2 clicks sale un archivo ( � @@@�@8 (codificación no válida) ) y cree los archivos q me dijiste y el ejcutable y nada jeje grax por la ayuda ajpy_2148@hotmail.es

    ResponderEliminar
  2. Luego de que seguís estos pasos NO tenes que ejecutar el ejectuable de eclipse directamente.... Acá creas un nuevo ejecutable y este mismo el que ejecutas de ahora en más.., no usas mas el que trae eclipse.
    También recuerda que en linux no funcionan los .exe.... (salvo que uses aplicaciones como wine pero eso es otra cosa y no lo necesitas para que funcione eclipse ni para esta guía)

    ResponderEliminar

Nro de visita Cantidad de visitas recibidas