Gentoo Logo

Guía Java Gentoo

Contenido:

1.  ¿Qué es Java?

Resumen

Java es un lenguaje de programación desarrollado por ingenieros de Sun Microsystems. Es un lenguaje orientado a objetos y diseñado para la ejecución en múltiples plataformas sin requerir la recompilación del código fuente para cada plataforma. Aunque Java puede ser compilado como un programa nativo, se le puede atribuir una buena parte de su popularidad a su portabilidad y otras características como la recolección de basura. Para hacer posible la independencia de plataforma, el compilador de Java compila el código Java a una representación intermedia denominada "bytecode Java" el cual se ejecuta en un JRE (Java Runtime Environment, Entorno de Ejecución Java) y no directamente en el Sistema Operativo.

Para poder ejecutar "bytecode" Java, hace falta tener instalado un entorno de ejecución Java o JRE (por Java Runtime Environment). El JRE proporciona unas librerías básicas, una máquina virtual Java para la plataforma instalada y plugins para navegadores, entre otras cosas. Un kit de desarrollo Java o JDK (por Java Development Kit) agrega herramientas para programación, como un compilador para bytecode y un depurador ("debugger").

2.  Antes de comenzar

Instalaciones existentes

Para las instalaciones existentes, aunque no haya instalado algo de Java antes, asegúrese de seguir (por ahora solo en inglés) la Guía de Actualización Java.

Instalaciones nuevas

Las instalaciones nuevas no requieren preparación previa.

3.  Installando una máquina virtual

Las opciones

Gentoo proporciona numerosos entornos para ejecución (JREs) y entornos para el desarrollo (JDKs). Entre las opciones actuales tenemos:

Origen JDK JRE
Kit Java Blackdown dev-java/backdown-jdk dev-java/blackdown-jre
Kit Java Sun dev-java/sun-jdk dev-java/sun-jre-bin
Kit Java IBM dev-java/ibm-jdk-bin dev-java/ibm-jre-bin
Kit de desarrollo J2SE de BEA WebLogic dev-java/jrockit-jdk-bin

Como opción por defecto usamos la dupla Blackdown JRE/JDK, ya que es libre (gratuita) y está disponible sin el fastidio de registrarse. registro.

Los JRE y JDK de Sun, IBM y BEA son generalmente más veloces, pero obtenerlos es un poco más trabajoso, pues uno está obligado a leer y aceptar sus licencias antes de descargar (adicionalmente, IBM requiere registrarse).

Instalar un JRE/JDK

Para instalar el JDK predeterminado de su perfil, puede ejecutar emerge virtual/jdk. O para instalar el JRE predeterminado de su perfil ejecute emerge virtual/jre.

En eventos recientes, Sun ha cambiado la licencia de sus JDK y JRE a unos términos muchos más amistosos para las distribuciones Linux. Como resultado, los lanzamientos de Sun a partir de la versión 1.5 son libremente descargables, sin molestias adicionales.

Nota: Un JDK incluye también un JRE, así que si instala un JDK no debería tener que instalar un JRE.

Instalando máquinas virtuales con restricciones de descarga

Como mencionamos anteriormente, algunos JDK y JRE requieren que uno salte varios aros antes de poder instalar. Sencillamente haga emerge a estos paquetes de la manera acostumbrada. Los ebuilds le indicarán a dónde ir y qué descargar.

Debe descargar el(los) fichero(s) indicado(s) a /usr/portage/distfiles. Una vez allí, vuelva a ejecutar el comando emerge y los JRE/JDK empezarán a ser instalados.

4.  Configurar su máquina virtual

Introducción

Gentoo permite tener instalados múltiples JDKs y JREs sin que esto cause conflictos.

Si tiene acceso como superusuario, puede usar la herramienta java-config puede establecer la configuración por defecto del sistema. Los usuarios también pueden usar java-config para establecer su configuración personal.

Nota: También puede usar eselect para cambiar la máquina virtual del sistema y del usuario. Vea eselect java-vm help.

Establecer una máquina virtual predeterminada

El comando java-config --list-available-vms producirá una lista de los JREs y JDKs instalados en el sistema. A continuación se muestra un ejemplo de la salida de ese comando:

Listado de Código 4.1: Listar las máquinas virtuales disponibles

# java-config --list-available-vms
The following VMs are available for generation-2:
1)      Blackdown JDK 1.4.2.03 [blackdown-jdk-1.4.2]
2)      Blackdown JRE 1.4.2.03 [blackdown-jre-1.4.2]
3)      Blackdown 32bit JRE 1.4.2.03 [emul-linux-x86-java-1.4.2]
4)      Sun 32bit JRE 1.5.0.08 [emul-linux-x86-java-1.5]
5)      Kaffe 1.1.7 [kaffe]
*)      Sun JDK 1.5.0.08 [sun-jdk-1.5]

El asterico * indica que ésta es la máquina virtual activa (la del sistema o la del usuario cuando está configurada). El nombre entre corchetes ([]) es el alias, o identificador para esa máquina virtual (MV). Puede usarse el alias o el número identificador con el comando java-config --set-system-vm. A continuación, un ejemplo de cómo establecer la MV del sistema:

Listado de Código 4.2: Establecer la MV del sistema

(Mediante alias (opción preferida))
# java-config --set-system-vm blackdown-jdk-1.4
Now using blackdown-jdk-1.4 as your generation-2 system JVM
(Mediante el número identificador)
# java-config --set-system-vm 6
Now using sun-jdk-1.5 as your generation-2 system JVM

Como usuario normal puede utilizar java-config --set-user-vm.

Nota: Ya no tiene que regenerar el perfil con source activar las actualizaciones hechas a la MV del sistema o del usuario.

MV de preferencia

Cuando esté instalando paquetes de Java, la MV puede y será cambiada si fuese necesario.

Debido a la amplia variedad de MVs disponibles, no tenemos los recursos para probar y verificar que todos los paquetes funcionen con todas ellas. Así que para asegurar que todo paquete instale sin problemas, hemos definido una lista de MVs predeterminadas/soportadas por arquitectura. Puede encontrarlas en /usr/share/java-config/config/jdk-defaults.conf. Cuando esté instalando un paquete Java y este detecte una de las máquinas virtuales en aquel fichero, usará automáticamente dicha MV en vez de la MV del sistema.

El cambio de MV al momento de instalar paquetes también es necesario cuando, por ejemplo, su MV del sistema está configurada como una MV 1.4 y el paquete que está instalado necesita una MV 1.5. Al instalar el paquete se usará la MV 1.5 preferida dejando intacta su elección de la máquina virtual del sistema.

Por supuesto, en Gentoo todo se trata acerca de elegir, así que puede hacer caso omiso de las opciones predeterminadas en /etc/java-config-2/build/jdk.conf y tener control total sobre cuál MV será usada. Algunos ejemplos:

Listado de Código 4.3: Ejemplo de /etc/java-config-2/build/jdk.conf

(Siempre quiero usar sun-jdk, es decir, sun-jdk-1.4 para 1.4, sun-jdk-1.5 para 1.5, etc)
*=sun-jdk

Listado de Código 4.4: Ejemplo de /etc/java-config-2/build/jdk.conf

(Use siempre sun-jdk-1.5 donde sea posible, excepto cuando se requiera explícitamente de una MV 1.4 ó 1.3)
*=sun-jdk-1.5

Listado de Código 4.5: Ejemplo de /etc/java-config-2/build/jdk.conf

# Para 1.3 prefiero sun-jdk 1.4, pero cuando no esté disponible, use ibm-jdk-bin.
# Para 1.4, use blackdown-jdk, y para 1.5, use sun-jdk
1.3=sun-jdk-1.4 ibm-jdk-bin
1.4=blackdown-jdk
1.5=sun-jdk

Aviso: No es obligatorio editar este fichero. Si cambia estas opciones para usar una MV no soportada, es posible que rompa algo. Los fallos reportados que mencionen el uso de una MV no soportada tendrán baja prioridad si no se informan con MV soportadas.

5.  Compiladores

El compilador estándar Java usado es javac, el cual viene en cada JDK. Aparte de configurar la MV utilizada en tiempo de compilación, también es posible configurar qué compilador se usará. Esencialmente, puede definir una lista de preferencias para especificar qué compilador será usado en /etc/java-config-2/build/compilers.conf.

Listado de Código 5.1: /etc/java-config-2/build/compilers.conf

# If the ebuild supports it
# it will check the COMPILERS var front to back and
# use the first compiler that is installed

COMPILERS="ecj-3.1 jikes javac"

Algunos compiladores no ofrecen soporte a todos los posibles argumentos de -target y -source. Por lo tanto, cada compilador en la lista es chequeado para ver si soporta el -source/-target deseado. javac funcionará en todos los casos, así que si no se encuentra un compilador adecuado, éste será usado en cambio.

A continuación se proporcionan más detalles sobre cada compilador:

Nombre Alias Paquete Descripción
javac javac N/D Este es el compilador por defecto que será usado y viene en cada JDK.
jikes jikes dev-java/jikes Jikes fue desarrollado originalmente por IBM. Anecdóticamente es, en general, más rápido que javac. Observe, sin embargo, que es más pedante y fallará en ciertos casos donde javac no tiene problemas. Todavía no soporta la sintáxis de Java 1.5.
Compilador Eclipse para Java ecj-3.1 =dev-java/eclipse-ecj-3.1* ECJ es el compilador usado por el kit de desarrollo de software Eclipse. Es pleno de características y además muy rápido. Ofrece soporte a la sintáxis de Java 1.5.

6.  Establecer el CLASSPATH predeterminado

Aviso: Las opciones explicadas en esta sección deben ser consideradas como obsoletas y probablemente serán eliminadas en el futuro. Recomendamos encarecidamente no usarlas, porque sus proyectos o aplicaciones Java deberían manejar sus propios "classpaths". Si elige especificar un CLASSPATH predeterminado, algunas aplicaciones podrían comportarse de modo inesperado ya que las clases que no se suponen ahí, lo estarán en el "classpath".

java-config también puede ser usado para establecer el CLASSPATH predeterminado del sistema, así como, el CLASSPATH predeterminado para un usuario específico.

Primero, querrá listar las bibliotecas Java disponibles instaladas en su sistema y que puede querer colocar en su CLASSPATH. A continuación un ejemplo de la salida del comando:

Listado de Código 6.1: Listar las clases

# java-config --list-available-packages
[xerces-2] The next generation of high performance, fully compliant XML parsers in the Apache Xerces family (/usr/share/xerces-2/package.env)
[junit] Simple framework to write repeatable tests (/usr/share/junit/package.env)
[bsh] BeanShell: A small embeddable Java source interpreter (/usr/share/bsh/package.env)
[bcel] The Byte Code Engineering Library: analyze, create, manipulate Java class files (/usr/share/bcel/package.env)
[log4j] A low-overhead robust logging package for Java (/usr/share/log4j/package.env)
...

Nuevamente, los nombres entre corchetes ([]) son los identificadores a pasar como argumentos a java-config --set-system-classpath. A continuación un ejemplo:

Listado de Código 6.2: Establecer el classpath

# java-config --set-system-classpath log4j,xerces-2

Nota: El directorio actual (.) no será parte del classpath del sistema pues debería ser agregado en el perfil de ingreso de su sistema.

Tendrá que actualizar su entorno ya sea reingresando o regenerando el fichero /etc/profile.

Para los usuarios, java-config --set-user-classpath creará ~/.gentoo/java-env-classpath, el cual debería regenerar desde su perfil del shell.

Listado de Código 6.3: Regenerar el classpath específico de un usuario

if [[ -f "${HOME}/.gentoo/java-env-classpath" ]]; then
       source ${HOME}/.gentoo/java-env-classpath
fi

Si realmente quiere un classpath predeterminado para el sistema o el usuario, puede agregar algo como lo siguiente a su perfil del shell, aunque le aconsejamos no hacerlo.

Listado de Código 6.4: Establecer el classpath

# export CLASSPATH="${CLASSPATH}:$(java-config --classpath log4j,xerces-2)"

7.  Plugins Java para los navegadores

Instalando un plugin

Puede instalar un plugin Java para el navegador haciendo emerge a una máquina virtual Java con el parámetro USE nsplugin activado.

Nota: nsplugin no está disponible para todas las arquitecturas. Revise si el soporte para la arquitectura deseada está disponible antes de intentar instalar una MV ejecutando emerge -pv <java-vm>.

Portage permitirá la instalación de múltiples versiones de plugins Java plugins, aunque solo uno será usado por el navegador. Puede revisar la lista de plugins disponibles con:

Listado de Código 7.1: Visualizando los plugins disponibles

# eselect java-nsplugin list
   [1]   sun-jre-bin-1.5
   [2]   blackdown-jre-1.4.2

En este ejemplo, el plugin del navegador seleccionado es sun-jre-bin.

Listado de Código 7.2: Seleccionando un plugin

# eselect java-nsplugin set sun-jre-bin-1.5

Verifique que el plugin correcto ha sido seleccionado:

Listado de Código 7.3: Verificando el plugin correcto

# eselect java-nsplugin list
   [1]   sun-jre-bin-1.5  current
   [2]   blackdown-jre-1.4.2

El sitio java.com proporciona un enlace para verificar el plugin instalado. Además, si está usando un navegador basado en Mozilla, puede verificar el plugin Java escribiendo about:plugins en la línea para direcciones.

Plugins en sistemas con múltiples librerías

Si está usando un sistema multilib con librerías de 64 y 32 bits (por ejemplo, en un AMD64), puede tener instalados ambos plugin Java, de 64 y de 32 bits.

Para usar un plugin de 32 bits, debe instalar emul-linux-x86-java activando el parámetro USE nsplugin.

Listado de Código 7.4: Instalando un plugin de 32 bits

# echo "app-emulation/emul-linux-x86-java nsplugin" >> /etc/portage/package.use
# emerge emul-linux-x86-java

Luego revise cuales plugins estan disponibles:

Listado de Código 7.5: Viendo cuales plugins estan disponibles

# eselect java-nsplugin list
Available 32-bit Java browser plugins
  [1]  emul-linux-x86-java-1.4.2
  [2]  emul-linux-x86-java-1.5

Aunque debe seleccionar un navegador de 32 bits (como mozilla-firefox-bin) para usar con el plugin de 32 bits, la versión de 64 bits de konqueror usa la máquina virtual Java de manera directa, así que es posible usar la versión de 64 bits de blackdown con este navegador, sin más configuración que hacer.

Ahora seleccione el plugin adecuado para el navegador de 32 bits:

Listado de Código 7.6: Seleccionando los plugins

# eselect java-nsplugin set 32bit emul-linux-x86-java-1.5

Verifique que los plugins correctos han sido seleccionados:

Listado de Código 7.7: Verificando los plugins correctos

# eselect java-nsplugin list
Available 32-bit Java browser plugins
  [1]   emul-linux-x86-java-1.4.2  current
  [2]   emul-linux-x86-java-1.5

8.  Parámetros USE para usar con Java

Configurar los parámetros USE

Para más información acerca de los parámetros USE, puede consultarse el capítulo acerca de Parámetros USE del Manual Gentoo.

Los parámetros USE

  • El parámetro java agrega soporte para Java en una variedad de programas.
  • El parámetro nsplugin agrega soporte para los navegadores estilo Mozilla (incluyendo Firefox). Necesitará esto para visualizar applets Java en su navegador estilo Mozilla.
  • El parámetro source instalará un fichero zip del código fuente del paquete. Esto es típicamente usado para proporcionar el código fuente del paquete a su IDE.
  • El parámetro jce agrega soporte para el motor criptográfico Java (en inglés: Java Cryptography Engine)
  • El parámetro doc típicamente instalará la documentación de la API, generada por javadoc.

9.  Recursos Adicionales

Recursos fuera de línea

  • Página del manual de java-config
  • java-config --help

Recursos en línea



Imprimir

Actualizado 1 de enero, 2008

Sumario: Esta guía le dará a conocer Java y le explicará cómo usar Java con Gentoo Linux.

Joshua Nichols
Autor

Karl Trygve Kalleberg
Autor

Joshua Saddler
Editor

José Alberto Suárez López
Traductor

John Christian Stoddart
Traductor

Pablo Pita Leira
Traductor

Andrés Pereira
Traductor

Donate to support our development efforts.

Support OSL

Support OSL

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

Global Netoptex Inc.

Global Netoptex Inc.

Linux World Expo

Linux World Expo

Copyright 2001-2008 Gentoo Foundation, Inc. Questions, Comments? Contact us.