Java (Español)
Originario de Wikipedia article:
- Java es un lenguaje de programación desarrollado originalmente por Sun Microsystems lanzado en 1995 como un componente central de Sun Microsystems' Java Platform. El lenguaje se deriva en gran parte de la sintaxis de C y C++ pero tiene un modelo de objetos más sencillo y menos facilidades de bajo nivel. Las aplicaciones java son normalmente compiladas en códigos de bytes que pueden correr en alguna máquina virtual java (JVM por sus siglas en inglés) independientemente de la arquitectura de la computadora.
Arch Linux oficialmente soporta el paquete de código abierto OpenJDK versión 7,8,9 y 10. Todas las JVM pueden ser instaladas sin conflictos e intercambiadas antes de usar con la ayuda de un script archlinux-java
. Otros ambientes java están disponibles en AUR pero no son oficialmente soportados.
Instalación
- Instalar JDK automáticamente descargara la dependencia JRE.
- Después de la instalación, el entorno de Java debe ser reconocido por la shell en la variable
$PATH
. Esto se puede hacer modificando/etc/profile
o simplemente cerrando y abriendo la sesión de nuevo.
Dos paquetes comunes llamados java-runtime-common (contiene archivos comunes para el Runtine de un entorno de Java) y java-environment-common (contiene archivos comunes para el kit de desarrollo de Java). El archivo de entorno /etc/profile.d/jre.sh
contiene un link a /usr/lib/jvm/default/bin
, el cual se puede modificar con el script archlinux-java
. Los links en /usr/lib/jvm/default
y /usr/lib/jvm/default-runtime
solo se deben modificar con archlinux-java
. Este script apunta a una versión valida y sin conflictos de un ambiente de Java en /usr/lib/jvm/java-${JAVA_MAJOR_VERSION}-${VENDOR_NAME}
o a un runtime de Java en /usr/lib/jvm/java-${JAVA_MAJOR_VERSION}-${VENDOR_NAME}/jre
.
La mayoría de los ejecutables de Java se proveen como links directos en /usr/bin
, mientras que otros están disponibles en $PATH
.
/etc/profile.d/jdk.sh
no es proporcionado por ningun paquete.Paquetes con soporte oficial
OpenJDK 10 — La implementación de referencia de código abierto de Java SE.
- https://openjdk.java.net/projects/jdk/10/ || jre10-openjdk-headless[enlace roto: package not found] jre10-openjdk[enlace roto: package not found] jdk10-openjdk[enlace roto: package not found] openjdk10-doc[enlace roto: package not found] openjdk10-src[enlace roto: package not found]
OpenJDK 9 — La implementación de referencia de código abierto de la novena edición de Java SE.
- https://openjdk.java.net/projects/jdk9/ || jre9-openjdk-headless[enlace roto: package not found] jre9-openjdk[enlace roto: package not found] jdk9-openjdk[enlace roto: package not found] openjdk9-doc[enlace roto: package not found] openjdk9-src[enlace roto: package not found]
OpenJDK 8 — La implementación de referencia de código abierto de la octava edición de Java SE.
- https://openjdk.java.net/projects/jdk8/ || jre8-openjdk-headless jre8-openjdk jdk8-openjdk openjdk8-doc openjdk8-src
OpenJDK 7 — La implementación de referencia de código abierto de la séptima edición de Java SE.
- https://openjdk.java.net/projects/jdk7/ || jre7-openjdk-headless[enlace roto: package not found] jre7-openjdk[enlace roto: package not found] jdk7-openjdk[enlace roto: package not found] openjdk7-doc[enlace roto: package not found] openjdk7-src[enlace roto: package not found]
OpenJFX 8 — La implementación de referencia de código abierto de JavaFX. No es necesario instalar este paquete si se hace uso de Java SE. Este paquete es solo para usuarios que buscan la implementacion de codigo abierto de Java (Proyecto OpenJDK).
Paquetes sin soporte oficial
Java SE — Implementación de JRE y JDK de la empresa Oracle.
- http://www.oracle.com/technetwork/java/javase/downloads/index.html || jreAUR jre6AUR jre7AUR jre8AUR jre9AUR jre-develAUR[enlace roto: package not found] jdkAUR jdk5AUR jdk6AUR jdk7AUR jdk8AUR jdk9AUR jdk-develAUR
OpenJ9 — Implementación de JRE por Eclipse, contribuida por IBM.
IBM J9 8 — Implementación de la octava edición de JRE por IBM.
IBM J9 7 — Implementación de la séptima edición de JRE por IBM.
Parrot VM — Una maquina virtual con soporte experimental para Java [1] mediante dos métodos: ya sea Java VM bytecode, o como compilador de Java focalizado a Parrot VM.
- http://www.parrot.org/ || parrotAUR
bin32-
, v.g. bin32-jreAUR y bin32-jdkAUR[enlace roto: package not found]. Estos usan java32-runtime-commonAUR, el cual funciona como java-runtime-common con el sufijo 32
, v.g. java32
. La misma analogía se aplica a java32-environment-commonAUR, que solo se usa para paquete de 32-bit de JDK.Marcar paquetes como antiguos
Aunque las versiones de los paquetes de Arch Linux pueden contener referencia a las versiones propietarias en las cuales se basan, el proyecto de código abierto tiene su propio esquema de versiones:
-
jre7-openjdk[enlace roto: package not found], jdk7-openjdk[enlace roto: package not found], y jre7-openjdk-headless[enlace roto: package not found] deben ser marcados como antiguos de acuerdo a la versión de IcedTea (v.g.
2.4.3
), y no a la versión de referencia de la empresa Oracle (v.g.u45
en el lanzamiento7.u45_2.4.3-1
). -
icedtea-web, este paquete debe ser marcado como antiguo basado en la versión de IcedTea Web (v.g.
1.4.1
). Esta es independiente de la versión de IcedTea.
Cambiar entre ambientes de JVM
El script archlinux-java
provee dicha funcionalidad:
archlinux-java <COMMANDO> COMMANDO: status Lista de ambientes de Java instalados y el que esta seleccionado get Responde con el nombre corto del ambiente de Java seleccionado por defecto set <JAVA_ENV> Se obliga que <AMBIENTE_JAVA> sea por defecto unset De-seleccionar el ambiente actual de Java fix Arregla un ambiente roto/invalido de Java
Lista de ambientes de Java instalados
$ archlinux-java status
Ejemplo:
$ archlinux-java status Available Java environments: ### Ambientes de Java disponibles java-7-openjdk (default) java-8-openjdk/jre
Note que el (default) denota que la versión java-7-openjdk
esta actualmente seleccionada por defecto. Al ejecutar java
y otros binarios se usará esa instalación. También note que solo la parte de JRE de OpenJDK 8 esta instalada.
Cambiar el ambiente de Java
# archlinux-java set <AMBIENTE_JAVA>
Ejemplo:
# archlinux-java set java-8-openjdk/jre
<AMBIENTE_JAVA>
, use archlinux-java status
.Note que archlinux-java
no lo dejara seleccionar un nombre invalido. En el ejemplo anterior jre8-openjdk esta instalado pero jdk8-openjdk no, así que intentar seleccionar java-8-openjdk
fallara:
# archlinux-java set java-8-openjdk '/usr/lib/jvm/java-8-openjdk' is not a valid Java environment path ### no es un ambiente de Java valido
De-seleccionar el ambiente actual de Java
No debería existir la necesidad de de-seleccionar un ambiente ya que el paquete que lo provee debería hacerlo. De cualquier manera, si lo desea hacer solo necesita el comando unset
:
# archlinux-java unset
Arreglo un ambiente de Java
Si se ha hecho un link que no es valido en un ambiente de Java, ejecutando archlinux-java fix
intenta repararlo. Nótese que si ningún ambiente esta seleccionado, este buscara nombres validos y seleccionara uno. Paquetes oficialmente soportados "OpenJDK 7" y "OpenJDK 8" tendrán preferencia y serán considerados de primero, después se consideraran los paquetes de AUR.
# archlinux-java fix
Ejecutar una aplicación con un ambiente no seleccionado de Java
Si desea ejecutar una aplicación con otra versión de Java, se puede envolver la aplicación en un pequeño script de bash que localmente cambia el PATH que Java usara. Por ejemplo, si la versión por defecto es jre7 y se desea usar jre8:
#!/bin/sh export PATH=/usr/lib/jvm/java-8-openjdk/jre/bin/:$PATH exec /ruta/a/aplicación "$@"