Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previa | |||
f1:java [2020/06/26 20:22] – lmachuca | f1:java [2023/03/02 15:15] (actual) – lmachuca | ||
---|---|---|---|
Línea 5: | Línea 5: | ||
Ver [[: | Ver [[: | ||
- | =====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 (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 (" | 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 (" | ||
- | 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-11``. | + | 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: | Para instalar la versión por defecto: | ||
- | apt install default-jre-headless | + | apt install default-jre-headless |
- | apt install default-jre # también parte gráfica | + | apt install default-jre |
- | apt install openjfx # Algunos complementos | + | apt install openjfx |
- | Para instalar otra versión de Java, ésta debe estar primero disponible en el repositorio. Con esto es posible instalarla por su nombre y número de versión, por ejemplo: | + | Para instalar otra versión de Java, ésta debe estar primero disponible en el repositorio |
apt install openjdk-8-jre-headless # o jdk-headless, | apt install openjdk-8-jre-headless # o jdk-headless, | ||
- | Debian y Ubuntu usan [m][[https:// | + | :!: La manera **recomendada** de instalar una versión de Java más independiente de la distribución es [[https:// |
+ | |||
+ | |||
+ | Una vez que haya múltiples versiones instaladas, | ||
<code bash> | <code bash> | ||
Línea 40: | Línea 40: | ||
java --version | java --version | ||
+ | |||
+ | ==== Ejecutar ==== | ||
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: | 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) Agregar la ruta a '' | + | a) (Para el shell actual) Agregar la ruta a '' |
<code bash> | <code bash> | ||
Línea 53: | Línea 55: | ||
</ | </ | ||
- | b) Encapsular a) en un script | + | b) Encapsular a) en un script |
- | Sea '' | + | Por ejemplo creamos |
<code bash> | <code bash> | ||
#!/bin/sh | #!/bin/sh | ||
- | JAVA_HOME=/ | + | export |
- | PATH=${JAVA_HOME}/ | + | export |
- | java $@ | + | |
</ | </ | ||
- | Dados privilegios de ejecución, ahora es posible invocar el jar con: | + | 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> | ||
- | usuario@maquina $ oracle-java-8 -version | + | usuario@maquina $ (. $HOME/bin/with-java8.sh && |
- | + | ||
- | java version " | + | |
- | Java(TM) SE Runtime Environment | + | |
- | Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode) | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | c) Crear un enlace simbólico a la versión deseada (**requiere root**) | + | |
- | + | ||
- | <code bash> | + | |
- | root@maquina | + | |
- | root@maquina $ oracle-java-8 | + | |
java version " | java version " | ||
Línea 90: | Línea 78: | ||
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> | 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> | ||
- | **Windows** | + | ===== Instalación |
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: | 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:// | + | * [[http:// |
- | * [[https:// | + | * [[https:// |
* ObjBuild (SuSE). | * ObjBuild (SuSE). | ||
**Facturación Electrónica** es el único proyecto exento de este requerimiento hasta que [[user> | **Facturación Electrónica** es el único proyecto exento de este requerimiento hasta que [[user> | ||
- | Es responsabilidad de cada aplicación setear | + | 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 |
=====Desarrollo===== | =====Desarrollo===== | ||
Línea 116: | Línea 104: | ||
=====Notas===== | =====Notas===== | ||
- | |||
- | ====Versión de Java para un Usuario Específico==== | ||
- | |||
- | 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 '' | ||
- | |||
- | Por ejemplo, si deseamos correr el proyecto '' | ||
- | |||
- | < | ||
- | # ... al final del archivo | ||
- | PATH=/ | ||
- | JAVA_HOME=/ | ||
- | </ | ||
- | |||
- | Cerramos sesión y volvemos a entrar con el usuario. Podemos confirmar que ahora la versión de Java marcada es la correcta con '' | ||
- | |||
- | <code bash> | ||
- | usuario1@host $ echo $JAVA_HOME | ||
- | / | ||
- | |||
- | usuario1@host $ java -version | ||
- | openjdk version " | ||
- | OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-1-b13) | ||
- | </ | ||
- | |||
- | Desde este punto podemos correr nuestro proyecto normalmente: | ||
- | |||
- | <code bash> | ||
- | usuario1@host $ java -jar mijava/ | ||
- | </ | ||
- | |||
---- | ---- |