Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
f1:java [2019/01/30 02:38] lmachucaf1:java [2023/03/02 15:15] (actual) lmachuca
Línea 5: Línea 5:
 Ver [[:produccion]]§Java para notas sobre las versiones de Java soportadas en Producción. Ver [[:produccion]]§Java para notas sobre las versiones de Java soportadas en Producción.
  
-=====Información Oficial=====+===== Instalación en Linux =====
  
-  * Java Documentation:  --+==== Instalar ====
  
-=====Instalar===== +Para instalar **Java** en sí en un equipo depende de la configuración del sistema operativo, aquí se muestra para **Linux (Debian y similares)**:
-Para instalar **Java** en sí en un equipo depende de la configuración del sistema operativo:+
  
-  * **Linux**:  +La mayoría de las distribuciones vienen con **OpenJDK** que es un entorno abierto de Java que viene con JDK JRE en dos formas: una consola virtual ("headless"y un entorno GUIEs de licencia libre
-    * La mayoría de las distribuciones vienen con OpenJDK, un entorno que incluye JDK y runtime. Se puede encontrar en el gestor de paquetes como "''openjdk''" o similar. Es de licencia libre. Por ejemplo en Debian:\\ <code bash>apt-get install openjdk-9-jdk</code> +
-      Confirmar con ''java -version''+
-      Si se tiene más de una versión de Java instalada, la versión global por defecto se cambia con \\ <code bash>update-alternatives --config java</code> +
-  * **Windows**: 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 (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: +
-    * [[http://openjdk.java.net/|OpenJDK]]  +
-    * [[https://adoptopenjdk.net/|AdoptOpenJDK]]  +
-    * ObjBuild (SuSE). +
-  * **Facturación Electrónica** es el único proyecto exento de este requerimiento hasta que [[user>ytorres]] oficialice lo contrario. Se está usando Java JDK 7u21 (desahuciado) hasta que se encuentre una ruta de actualización a OpenJDK 9.+
  
-**Servidores Helpcom**:+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``.
  
-  Debian 8apt-get install openjdk-8-jdk +Para instalar la versión por defecto:
-  Debian 9: apt-get install openjdk-9-jdk +
-            apt-get install openjdk-10-jdk+
  
-<note> Algunos de estos instaladores se encuentran [[:Transferencias de Archivos|en el SFTP de Helpcom]] en la carpeta de Archivos/Desarrollo. +  apt install default-jre-headless  # sólo el CLI 
-</note>+  apt install default-jre           # también parte gráfica 
 +  apt install openjfx               # Complementos dependiendo de la versión
  
-=====Desarrollo=====+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:
  
-El entorno de desarrollo soportado por Debian es **NetBeans**el cual está disponible como el paquete ''netbeans''. [[https://netbeans.apache.org/|Web oficial]]. [[https://netbeans.apache.org/download/nb90/nb90.html|Versión 9.x de archivo]].+  apt install openjdk-8-jre-headless # o jdk-headlessetc
  
-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. [[https://www.eclipse.org/downloads/packages/|Web de descargas]].+:!: La manera **recomendada** de instalar una versión de Java más independiente de la distribución es [[https://adoptium.net/es/installation/linux/#_deb_installation_on_debian_or_ubuntu|seguir el proceso de instalación de Temurin (AdoptOpenJDK) Java]] para Debian y Ubuntu.
  
-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''. 
  
 +Una vez que haya múltiples versiones instaladas, Debian y Ubuntu usan [m][[https://askubuntu.com/questions/233190/what-exactly-does-update-alternatives-do|update-alternatives]][/m] 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:
  
-===== Tópicos =====+<code bash> 
 +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 
 +</code>
  
-{{topic>helpcom +java}}+La versión de Java que corre actualmente por defecto se puede confirmar con 
  
-=====Notas=====+  java --version
  
-====Versión de Java para un Usuario Específico====+==== Ejecutar ====
  
-Si se tiene varias versiones de Java instaladas en un equipo, es posible forzar a un software a utilizar una versión de Java específica cambiando las variables de entorno del usuario con que ejecuta, para apuntar ''JAVA_HOME'' y ''PATH'' a la ruta deseada. Por tanto, es recomendado que el proyecto corra **con su propio usuario específico** de modo de no tener que cambiar el entorno de Java de un usuario de sistema.+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:
  
-Por ejemplo, si deseamos correr el proyecto ''mijava'' del usuario ''usuario1'' (en ''/home/usuario1/mijava''), para que use la versión de Java 8 en ''/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java'', modificamos el archivo **''$HOME/.profile''** como sigue:+a) (Para el shell actualAgregar la ruta a ''JAVA_HOME'' y su bin-path a ''PATH'' durante la invocación
  
-<code> +<code bash
-# ... al final del archivo +usuario@maquina $ JAVA_HOME=/usr/lib/jvm/oracle-java8-jre-amd64 PATH=${JAVA_HOME}/bin:${PATH} java -version 
-PATH=/usr/lib/jvm/java-8-openjdk-amd64/jre/bin:$PATH + 
-JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre/+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)
 </code> </code>
  
-Cerramos sesión y volvemos entrar con el usuario. Podemos confirmar que ahora la versión de Java marcada es la correcta con ''java %%-version%%'':+b) Encapsular a) en un script sourceable
  
-<code bash> +Por ejemplo creamos ''$HOME/bin/with-java8.sh'' con las rutas adecuadas, y lo marcamos como ejecutable. El archivo contiene lo siguiente:
-usuario1@host echo $JAVA_HOME +
-/usr/lib/jvm/java-8-openjdk-amd64/jre+
  
-usuario1@host $ java -version +<code bash> 
-openjdk version "1.8.0_181" +#!/bin/sh 
-OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-1-b13)+export JAVA_HOME=/usr/lib/jvm/oracle-java8-jre-amd64 
 +export PATH=${JAVA_HOME}/bin:${PATH}
 </code> </code>
  
-Desde este punto podemos correr nuestro proyecto normalmente:+Dados privilegios de ejecución, ahora es posible invocar el jar con la versión de Java que queremos en un subshell:
  
 <code bash> <code bash>
-usuario1@host $ java -jar mijava/mijava.jar+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) 
 </code> </code>
  
 +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 [[factelect>cliente/postinst]].
 +
 +===== Instalación Windows =====
 +
 +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:
 +
 +  * [[http://openjdk.java.net/|OpenJDK]] para Windows
 +  * [[https://adoptopenjdk.net/|AdoptOpenJDK]] / Temurin  para Windows
 +  * ObjBuild (SuSE).
 +
 +**Facturación Electrónica** es el único proyecto exento de este requerimiento hasta que [[user>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.
 +
 +=====Desarrollo=====
 +
 +El entorno de desarrollo soportado por Debian es **NetBeans**, el cual está disponible como el paquete ''netbeans''. [[https://netbeans.apache.org/|Web oficial]]. [[https://netbeans.apache.org/download/nb90/nb90.html|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. [[https://www.eclipse.org/downloads/packages/|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''.
 +
 +
 +===== Tópicos =====
 +
 +{{topic>helpcom +java}}
 +
 +=====Notas=====
  
 ---- ----
f1/java.1548815914.txt.gz · Última modificación: 2019/01/30 02:38 por lmachuca
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0