Java

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Java and the translation is 38% complete.
Outdated translations are marked like this.

Java es un lenguaje de programación desarrollado originalmente por Sun Microsystems que utilizan un ejecutable para permitir correr aplicaciones desarrolladas en Java en varias plataformas. Es una opción popular para los desarrolladores que desean crear aplicaciones multiplataforma.

¿Que es Java?

Visión general

Java es un lenguaje de programación desarrollado por ingenieros de Sun Microsystems. El lenguaje es totalmente orientado a objetos y diseñado para ser ejecutado en múltiples plataformas sin la necesidad de recompilar el código para cada una de ellas. Aunque Java puede ser compilado como un lenguaje nativo, mucha de la popularidad de Java se atribuye a su portabilidad, junto con otras características como recolección de basura. Para hacer posible esta independencia de plataforma, el compilador de Java compila el codigo Java hacia una representación intermedia denominada "Java bytecode" que es ejecutado en un JRE (Java Runtime Environment) y no directamente sobre el sistema operativo.

Para ejecutar Java bytecode, es necesario tener un entorno JRE (Java Runtime Environment) instalado. Un JRE proporciona bibliotecas centrales, una maquina virtual de Java dependiente de plataforma, y extensiones para navegadores web entre otras cosas. Por otro lado un JDK (Java Development Kit) agrega herramientas de programación, tales como compilador de bytecode y un depurador de codigo.

JVM languages

The Java virtual machine is not used exclusively by Java programming language. Multiple programming languages use the Java platform and run on the JVM. Examples of such include: Clojure, Apache Groovy, Kotlin or Scala.

Instalando una máquina virtual

Opciones

Gentoo proporciona una variedad de entornos de ejecución de Java (JREs) y kits de desarrollo Java (JDKs). Las opciones actuales incluyen:

Vendor JDK JRE
Open Java SE de IcedTea (anteriormente icedtea6-bin) dev-java/icedtea-bin y dev-java/icedtea-bin
Java 7 SE de Oracle dev-java/oracle-jdk-bin dev-java/oracle-jre-bin
El compilador Java GCC de GNU: GCJ IcedTea (actualmente IcedTea-7) dev-java/icedtea sys-devel/gcc USE="gcj"

|}

Instalar un JRE/JDK

Para instalar el JDK por defecto del perfil lance:

root #emerge --ask virtual/jdk

Para instalar el perfil JRE por defecto lanzar:

root #emerge --ask virtual/jre
Nota
Tenga en cuenta que cada JDK incluye un JRE. Por tanto no es necesario instalar un JRE si se ha hecho emerge de un JDK.

Configurar un JRE sin monitor ni teclado

A veces no hay necesidad de un JRE completo con todas las capacidades (capabilities) de java. Usar java en un servidor no suele requerir ninguna GUI ni ninguna característica gráfica, de sonido o incluso de impresión. Para instalar un JRE simplificad (a veces descrito como sin interfaz), se necesita cambiar algunos ajustes USE para el tipo de JRE seleccionado.

ARCHIVO /etc/portage/package.useCambios necesarios en los ajustes USE
dev-java/icedtea headless-awt -alsa -cups
dev-java/icedtea-bin headless-awt -alsa -cups
dev-java/oracle-jre-bin headless-awt -alsa -cups

Dependiendo del perfil de Gentoo actual, este podría ser el caso. Como es habitual, se pueden comprobar los ajustes USE que se aplican a un determinado paquete lanzado emerge en el modo pretensión:

user $emerge --pretend --verbose virtual/jre

Configurar la máquina virtual de Java

Visión general

Gentoo posee la habilidad de instalar multiples JDKs y JREs sin causar conflictos.

Estableciendo una maquina virtual por defecto

Al lanzar la orden java-config --list-available-vms se mostrará una lista de los JREs y JDKs instalados en el sistema. A continuación se muestra un ejemplo de esta salida:

root #java-config --list-available-vms
The following VMs are available for generation-2:
1&41;      IcedTea JDK 7.2.6.3 [icedtea-7]
*&41;      IcedTea JDK 3.0.1 [icedtea-8]

El "*" indica cual es la JVM activa (system-vm o user-vm cuando ha sido configurada). El nombre dentro de las llaves ([]) es el identificador de la maquina virtual en particular. Se puede utilzar el ID o el número en java-config --set-system-vm para definir la máquina virtual. El siguiente texto ofrece un ejemplo de cómo establecer la maquina virtual para todo el sistema.

root #java-config --set-system-vm icedtea-7
Now using icedtea-7 as your generation-2 system JVM

Método alternativo: seleccionar la máquina virtual por número:

root #java-config --set-system-vm 3
Now using icedtea-7 as your generation-2 system JVM
Nota
Normalmente no se necesita hacer source del perfil para las sesiones ya existentes del intérprete de órdenes cuando se cambia de usuario o de máquina virtual del sistema. La única excepción es que las variables como JAVA_HOME todavía apuntarán a la localización anterior después de ajustar por primera vez una máquina virtual de usuario o volver a la máquina virtual del sistema.

Complementos Java para el Navegador Web

Importante
The Java plugin support had been deprecated in JDK 9[1].

También tenga en cuenta que los navegadores Web basados en el proyecto Chromium ya no ofrecen soporte para plugins basadas en NPAPI debido a que se eliminó el código en septiembre de 2015. La lista de navegadores soportados está mermando pero aún incluye Firefox desde la versión 46.

For those who need a Java-enabled browser for a specific use case, there is e.g. palemoon/palemoon-bin available in the palemoon overlay, which has long-term support for NPAPI and thus Java plugins up to JDK 8[2].

Ajustes USE para su uso con Java

Establecer los ajustes USE

Para más información en relación a los ajustes USE, consultar el capítulo correspondiente del manual de Gentoo.

Ajustes USE

  • El ajuste java añade soporte para Java en algunos programas
  • El ajuste nsplugin añade soporte para los navegadores de Mozilla (incluyendo Firefox). Esto es necesario para ver applets de Java en un navegador tipo Mozilla
  • El ajuste jce añade soporte para el motor criptográfico de Java

Los siguientes ajustes USE van en JAVA_PKG_IUSE.

  • El ajuste source instala un fichero zip de los fuentes de un paquete. Esto se utilizaba tradicionalmente en los IDEs para 'adjuntar' fuentes la las librerías que se estaban utilizando.
  • Para los paquetes Java, el ajuste doc construirá la documentación del API utilizando javadoc.
  • The source flag installs a zip of the source code of a package. This is traditionally used for IDEs to 'attach' source to the libraries that are being use;
  • For Java packages, the doc flag will build API documentation using javadoc.

Troubleshooting

Minecraft launcher errors

  • A specific error in which minecraft-launcher crashed after a few seconds, throwing "Alarm" and "SaveToBuffer failed" error was solved by setting the USE flag threads for net-misc/curl.
  • When executing minecraft-launcher the following error was produced:
user $./minecraft-launcher
[0229/184549.183275:ERROR:sandbox_linux.cc(346)] InitializeSandbox() called with multiple threads in process gpu-process.

This was solved by executing minecraft-launcher with the following option:

user $MESA_GLSL_CACHE_DISABLE=true ./minecraft-launcher

Ver también

Recursos externos

Se puede encontrar más información fuera de línea:

  • man java-config
  • java-config --help

References

  1. JDK 9 and the Java Plugin, java.com. Retrieved on November 30, 2018
  2. Pale Moon future roadmap, palemoon.org. Retrieved on June 28, 2019

This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Joshua Nichols, Karl Trygve Kalleberg, nightmorph
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.