Instalar gcj

Ayer me acoste muy tarde, pero merecio la pena, me quede compilando e instalando la ultima version de gcc

http://gcc.gnu.org/

El motivo: queria probar la compilacion nativa de codigo java en la plataforma y en mi casa no tengo internet.

En el trabajo si que lo instale con conexion…
Si tienes conexion, para instalar gcj en ubuntu puedes hacerlo facilmente con apt-get:

jose@soledad:~$ sudo apt-get install gcj
Password:
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo información de estado... Hecho
Se instalarán los siguientes paquetes extras:
gcj-4.1 libgcj7-awt libgcj7-dev libgcj7-jar
Paquetes sugeridos:
java-gcj-compat-dev libgcj-doc
Paquetes recomendados
fastjar
Se instalarán los siguientes paquetes NUEVOS:
gcj gcj-4.1 libgcj7-awt libgcj7-dev libgcj7-jar
0 actualizados, 5 se instalarán, 0 para eliminar y 88 no actualizados.
Necesito descargar 23,8MB de archivos.
Se utilizarán 78,7MB de espacio de disco adicional después de desempaquetar.
¿Desea continuar [S/n]? S
Des:1 http://es.archive.ubuntu.com edgy/main libgcj7-jar 4.1.1-14ubuntu7 [7897kB]
Des:2 http://es.archive.ubuntu.com edgy/main libgcj7-awt 4.1.1-14ubuntu7 [79,1kB]
Des:3 http://es.archive.ubuntu.com edgy/main libgcj7-dev 4.1.1-14ubuntu7 [12,9MB]
Des:4 http://es.archive.ubuntu.com edgy/main gcj-4.1 4.1.1-14ubuntu7 [2856kB]
Des:5 http://es.archive.ubuntu.com edgy/main gcj 4:4.1.1-6ubuntu3 [1446B]
Descargados 23,8MB en 16s (1412kB/s)
Seleccionando el paquete libgcj7-jar previamente no seleccionado.
(Leyendo la base de datos ...
123300 ficheros y directorios instalados actualmente.)
Desempaquetando libgcj7-jar (de .../libgcj7-jar_4.1.1-14ubuntu7_all.deb) ...
Seleccionando el paquete libgcj7-awt previamente no seleccionado.
Desempaquetando libgcj7-awt (de .../libgcj7-awt_4.1.1-14ubuntu7_i386.deb) ...
Seleccionando el paquete libgcj7-dev previamente no seleccionado.
Desempaquetando libgcj7-dev (de .../libgcj7-dev_4.1.1-14ubuntu7_i386.deb) ...
Seleccionando el paquete gcj-4.1 previamente no seleccionado.
Desempaquetando gcj-4.1 (de .../gcj-4.1_4.1.1-14ubuntu7_i386.deb) ...
Seleccionando el paquete gcj previamente no seleccionado.
Desempaquetando gcj (de .../gcj_4%3a4.1.1-6ubuntu3_i386.deb) ...
Configurando libgcj7-jar (4.1.1-14ubuntu7) ...
Configurando libgcj7-awt (4.1.1-14ubuntu7) ...
Configurando libgcj7-dev (4.1.1-14ubuntu7) ...
Configurando gcj-4.1 (4.1.1-14ubuntu7) ...
Configurando gcj (4.1.1-6ubuntu3) ...
jose@soledad:~$

Ten tambien instalado gcc previamente y aquellas utilidades necesarias para compilar como make

En el trabajo tengo acceso a estaciones Sparc y a maquinas Red Hat asi que tuve que instalarlo manualmente tambien en una maquina Red Hat cuya version de gcc era la 3.2.3. Aqui os comento lo que hice.

(nota: si ya tienes gcc instalado con la ultima version y solo quieres actualizar gcj puedes tambien bajarte unicamente los fuentes del gcj y compilarla. En mi caso me descargue el fichero completo)

Nos descargamos el siguiente fichero de algun mirror de los que aparecen en el sitio web de gcc:


gcc-4.1.3.tar.gz

Este fichero contiene el codigo fuente de gcc y el resto de lenguajes (java, c++,etc), es el paquete completo.

como usuario root…

Lo descomprimimos y nos metemos en la carpeta creada.

tar -xzpvf gcc-4.1.3.tar.gz
cd gcc-4.1.2

en esa ruta creamos un directorio build

mkdir build

y nos cambiamos a el

cd build

ahora solo queda invocar el configure con las siguientes opciones

../configure --enable-languages=c,c++,java,objc
(con estos flags activamos el soporte de esos lenguajes)

La instalacion de gcc se hace por defecto en /usr/local, si quieres cambiar esta ruta añade tambien la opcion --prefix=<directorio donde instalar>

una vez que se genere el makefile ejecutamos

make

comienza la compilacion, si quieres guardar los errores puedes usar en lugar de make a secas lo siguiente:

make 2>errores.make

para guardar la traza en un fichero denominado “errores.make”.

instalando_gcj.png

La compilacion a mi me tardo bastante (depende de tu maquina), al finalizar ya puedes instalar gcc con el siguiente comando:

make install

y se acabo. comprueba ahora las versiones instaladas.

gcj --version

debes obtener a la salida algo similar a lo siguiente:

gcj (GCC) 4.1.2
Copyright (C) 2006 Free Software Foundation, Inc.
Esto es software libre; vea el código para las condiciones de copia. NO hay
garantía; ni siquiera para MERCANTIBILIDAD o IDONEIDAD PARA UN PROPÓSITO EN
PARTICULAR

y la version de gcc

gcc --version

resulta lo siguiente:

gcc (GCC) 4.1.2
Copyright (C) 2006 Free Software Foundation, Inc.
Esto es software libre; vea el código para las condiciones de copia. NO hay
garantía; ni siquiera para MERCANTIBILIDAD o IDONEIDAD PARA UN PROPÓSITO EN
PARTICULAR

Vamos a escribir ahora una pequeña clase en java para probar la compilacion nativa en estos entornos.

Escribe la siguiente clase java, llama al fichero “Hola.java”.


public class Hola
{
public static void main(String[] args)
{
System.out.println("Hola desde gcj!!!");
}
}

Para compilarlo directamente a un ejecutable usa:

gcj --main=Hola -o Hola Hola.java

(le indicas que el cuerpo principal es Hola, que se genere un fichero output denominado Hola y que la clase es Hola.java)

Si necesitaras añadir el classpath seria asi:

gcj --main=Hola -o Hola Hola.java --classpath=<tuclasspath>

si no indicas un nombre de salida con la opcion -o por defecto se te genera un fichero a.out (que es el ejecutable).

Funciona!!!, tenemos codigo java compilado nativamente y sin tener que usar programas caros como Excelsior.

nota: si te da problemas con las librerias, asegurate de tenerlas y definirlas tambien en la variable de entorno LD_LIBRARY_PATH
Por ejemplo si obtienes un mensaje como:

error while loading shared libraries: libgcj.so.7: cannot open shared object file: No such file or directory

Podemos buscar donde se encuentra con el comando “whereis”

whereis libgcj.so.7
libgcj.so: /usr/lib/libgcj.so.3 /usr/local/lib/libgcj.so.7 /usr/local/lib/libgcj.so

Entonces exportamos la ruta:

export LD_LIBRARY_PATH=/usr/local/lib

Ahora si que funciona!!!

/export/gcj > ./Hola
Hola desde gcj!!!

Ojo si te llevas el ejecutable a otra maquina, asegurate de que esa maquina tiene todas las librerias de enlace dinamico requeridas. las puedes ver si ejecutas el comando “ldd”

export/gcj > file Hola
Hola: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped

/export/gcj > ldd Hola
/etc/libcwait.so => /etc/libcwait.so (0xb75e7000)
libgcc_s.so.1 => /usr/local/lib/libgcc_s.so.1 (0xb75dc000)
libgcj.so.7 => /usr/local/lib/libgcj.so.7 (0xb60eb000)
libm.so.6 => /lib/tls/libm.so.6 (0xb60bc000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb60ac000)
libdl.so.2 => /lib/libdl.so.2 (0xb60a9000)
libc.so.6 => /lib/tls/libc.so.6 (0xb5f71000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb75eb000)
pstigpr2(manager): /export/manager/gcj >

Si te gusta el tema y quieres ver mas. mira:

Compilacion nativa de codigo Java

1 Response to “Instalar gcj”


  1. 1 ErunamoJAZZ septiembre 15, 2011 en 12:47 am

    wow, y porqué nunca había leído esto?? jajaja!


Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s





The next version of Ubuntu is coming soon


¿Es compatible tu equipo con Ubuntu?


( Muchos fondos de pantalla, aqui )

DESCARGATE SCIFI LIFE

365 Dias de Soledad
Me debes los sueños, las promesas y las noches rotas. Me debes la paz, la sonrisa y la esperanza robadas. Me debes la sangre, las lágrimas y el sudor vertido. Me debes las noches vacías, los abrazos anhelados. Me debes un beso de ajenjo de tu amarga boca.

The Ubuntu Counter Project - user number # 11961
Geo Visitors Map
febrero 2007
L M X J V S D
    mar »
 1234
567891011
12131415161718
19202122232425
262728  

Blog Stats

  • 26,587,932 hits

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 1.032 seguidores

%d personas les gusta esto: