Java es un lenguaje de programación multipropósito que funciona sobre una máquina de ejecución virtual (“runtime”). Es en general tan cool como Python excepto que es más pesado.
Ver produccion§Java para notas sobre las versiones de Java soportadas en Producción.
Para instalar Java en sí en un equipo depende de la configuración del sistema operativo, aquí se muestra para Linux (Debian y similares):
La mayoría de las distribuciones vienen con OpenJDK que es un entorno abierto de Java que viene con JDK y JRE en dos formas: una consola virtual (“headless”) y un entorno GUI. Es de licencia libre.
Dependiendo de la versión de Debian / Ubuntu distintas versiones de OpenJDK están disponibles. A fecha de última edición de este documento, la versión en Debian Stable es ``openjdk-17``.
Para instalar la versión por defecto:
apt install default-jre-headless # sólo el CLI apt install default-jre # también parte gráfica apt install openjfx # Complementos dependiendo de la versión
Para instalar otra versión de Java, ésta debe estar primero disponible en el repositorio de la distribución. Con esto es posible instalarla por su nombre y número de versión, por ejemplo:
apt install openjdk-8-jre-headless # o jdk-headless, etc
La manera recomendada de instalar una versión de Java más independiente de la distribución es seguir el proceso de instalación de Temurin (AdoptOpenJDK) Java para Debian y Ubuntu.
Una vez que haya múltiples versiones instaladas, Debian y Ubuntu usan update-alternatives
para gestionar las instalaciones de Java, siempre y cuando todas vengan desde la paquetería de Debian. Por ejemplo, es posible listar las versiones de Java instaladas desde paquetería con:
usuario@maquina $ update-alternatives --list java /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java /usr/lib/jvm/oracle-java8-jre-amd64/bin/java
La versión de Java que corre actualmente por defecto se puede confirmar con
java --version
Para ejecutar un jar con una versión diferente de Java, es cosa de cargar en el entorno la ruta de su ejecutable correcto antes de invocar. Hay, en general, dos maneras de hacer esto:
a) (Para el shell actual) Agregar la ruta a JAVA_HOME
y su bin-path a PATH
durante la invocación
usuario@maquina $ JAVA_HOME=/usr/lib/jvm/oracle-java8-jre-amd64 PATH=${JAVA_HOME}/bin:${PATH} java -version java version "1.8.0_121" Java(TM) SE Runtime Environment (build 1.8.0_121-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
b) Encapsular a) en un script sourceable
Por ejemplo creamos $HOME/bin/with-java8.sh
con las rutas adecuadas, y lo marcamos como ejecutable. El archivo contiene lo siguiente:
#!/bin/sh export JAVA_HOME=/usr/lib/jvm/oracle-java8-jre-amd64 export PATH=${JAVA_HOME}/bin:${PATH}
Dados privilegios de ejecución, ahora es posible invocar el jar con la versión de Java que queremos en un subshell:
usuario@maquina $ (. $HOME/bin/with-java8.sh && java -version) java version "1.8.0_121" Java(TM) SE Runtime Environment (build 1.8.0_121-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
La paquetería de Helpcom de Facturación Electrónica usa este mecanismo para hacer disponible Java 7u21 requerido por los sistemas de facturación. Ver cliente/postinst.
La distribución mayor es Java de Oracle pero partiendo en 2018 han hecho retroactiva su licencia comercial para Java >= 1.8, significando que Helpcom (y los clientes) deben pagar una suscripción para poder utilizar el Java de Oracle. Se recomienda usar en vez de eso una de las siguientes fuentes:
Facturación Electrónica es el único proyecto exento de este requerimiento hasta que ytorres oficialice lo contrario. Se está usando Java JDK 7u21 (desahuciado) hasta que se encuentre una ruta de actualización a OpenJDK 9.
Puesto que puede haber múltiples versiones de Java instaladas y Windows no tiene un mecanismo de carga de rutas entre múltiples versiones de un programa, es responsabilidad de cada aplicación y desarrollador setear su entorno propio para iniciar con la versión de JAVA correcta, léase
JAVA_HOME
y PATH
, sin causar conflictos con el resto de las aplicaciones del sistema que pueden usar otro Java. Esto puede hacerse por ejemplo colocando un archivo .bat
como responsable de actualizar las variables de entorno y lanzar la aplicación.
El entorno de desarrollo soportado por Debian es NetBeans, el cual está disponible como el paquete netbeans
. Web oficial. Versión 9.x de archivo.
También está disponible Eclipse, pero es preferible instalarlo desde su página web oficial debido a que la versión en Debian Stable (y en Ubuntu 16) está más de un año atrasada. Web de descargas.
Debian y sus distros similares incluyen un compilador de dos fases para Java que permite crear tanto paquetes class
como binarios de Linux, llamado javac
. Para instalarlo es necesario instalar el paquete -headless
correspondiente a la distribución de OpenJDK utilizada: por ejemplo en openJDK 9, openjdk-9-headless
.
2018/11/21 14:47 | Luis Machuca Bezzaza |