Este documento presenta una introducción a las principales novedades de Java 9. Comienza con una breve biografía del orador y luego pasa a describir el sistema modular de Java 9 llamado Jigsaw, incluyendo cómo se definen y usan los módulos. También cubre cómo instalar Java 9 e IDEs compatibles, y explora cambios en el lenguaje como métodos privados en interfaces y try-with-resources para variables efectivamente finales. Finalmente, menciona mejoras a varias APIs y herramientas como JShell antes de concluir con consideraciones sobre la mig
1. Primeros pasos ....
Eudris Cabrera
@eudriscabrera
18 Noviembre 2017, PUCMM, Santiago de los caballeros, R. D.
2. Eudris Cabrera
Graduado de Ingeniería Telemática en la PUCMM.
Entusiasta de la tecnología y el software libre,
desarrollador Java, instructor ocasional (Java / Linux),
aficionado del béisbol/sóftbol y los bailes latinos.
En el tiempo libre, escribe artículos, realiza charlas,
participa en eventos tecnológicos y ayuda en la revisión
de documentación técnica en el mundo Java y el código
abierto.
3. AGENDA
● Sistema Modular - Proyecto
Jigsaw
● Instalación de JDK 9
● Explorando Java 9 con Eclipse
● Cambios en el Lenguaje
● Mejoras a varios API
● Nuevas APIs y funcionalidades
● Conclusiones
4.
5. Sistema Modular :
Proyecto Jigsaw
Es la principal novedad en Java 9.
La idea de un sistema modular es hacer el jdk
más ligero para dispositivos pequeños.
El sistema de módulos proporcionará a la
aplicación la capacidad de utilizar sólo los
módulos del jdk que sean necesarios.
Las aplicaciones ya no necesitarán el jdk completo.
El sistema de módulos encapsula las clases
públicas dentro de un módulo. Así que clase
definida pública no estaría disponible para el
mundo entero hasta que un módulo lo defina
explícitamente.
6. Sistema Modular - Proyecto Jigsaw
Los módulos van a ser descritos en un archivo llamado module-info.java ubicado
en la parte superior de la jerarquía de código java.
El archivo module-info provee:
1. Nombre del módulo.
2. Lista de dependencias de módulos necesarias para la correcta compilación y
ejecución.
3. Información sobre paquetes exportados por este módulo.
4. Lista de servicios que proporciona el módulo en tiempo de ejecución.
8. Sistema Modular - Proyecto Jigsaw
com.example.samplemodule : es el nombre del módulo.
requires : Indica que son dependencia del módulo
exports : Todas las clases públicas en estos paquetes serán accesibles a otros módulos
que dependen de él.
uses : Para usar datos de otros módulos.
provides : Proporciona configuración al servicio de otro módulo
9. Instalación de Java SE 9
❏ Descargar y descomprimir
>
http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downlo
ads-3848520.html
❏ Asegúrese de que la variable de entorno JAVA_HOME
está en apuntando al directorio del JDK
❏ Instalar un IDE con soporte para Java 9
10. Instalación de Java SE 9
❏ Descargar y descomprimir
> http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html
❏ Asegúrese de que la variable de entorno JAVA_HOME
está en apuntando al directorio del JDK
❏ Instalar un IDE con soporte para Java 9
11. IDE que soportan Java SE 9
NetBens 9 (No hay
fecha exacta para el
lanzamiento)
http://wiki.netbeans.org
/NetBeans_9#Schedule
Eclipse IDE, Oxygen
Edition
https://www.eclipse.
org/downloads/
IntelliJ IDEA (versión 2017.2
del 18 de Julio o superior )
https://www.jetbrains.co
m/idea/download/
16. Sistema Modular - Proyecto Jigsaw
Crear un jar a partir de módulo
$ jar -c -f com.eudriscabrera.examples.greetings.jar -C com.eudriscabrera.examples.greetings .
18. Métodos Privados en Interfaces
Además de los métodos default "predeterminados", ahora en
Java 9 puede declarar métodos privados.
La idea es poder ocultar aquellas implementaciones de métodos
que no tienen que ser expuesta a las clases que implementen la
interfaz.
19. Los métodos por defecto en Java 8 fue una funcionalidad
bien recibida, pero había un detalle desafortunado: reutilizar
el código entre los métodos predeterminados era
desagradable.
33. Ciclo de lanzamiento Java 9 representa el final de la era de
las versiones Java basadas en funciones.
En el pasado, se seleccionaron algunas
características importantes, y cada vez
que estaban listas, se realizó una nueva
versión principal de Java.
34. En la práctica, esto condujo a al menos tres años entre lanzamientos
importantes. Eso no es aceptable en estos tiempos, por lo que Oracle
y el proyecto OpenJDK están cambiando a versiones basadas en el
tiempo.
Ahora, cada 6 meses se lanzará una nueva versión de Java.
Contendrá todas las características que estén listas para ese
momento.
Entre estos lanzamientos de 6 meses, las actualizaciones con
soluciones críticas aún se pueden lanzar cuando sea necesario.
35. Calendario de Lanzamiento Este nuevo calendario de
lanzamientos tiene varias
implicaciones.
En primer lugar, las versiones de Java se vuelven
más frecuentes y predecibles. El plan actual es
lanzar Java en marzo y septiembre de cada año.
El nuevo esquema de número de versión
propuesto para incrementar la versión principal
cada seis meses, lo que significa que la próxima
versión en marzo de 2018 será Java 10.
Sin embargo, el esquema de versión aún está en
discusión.
36. Versiones con soporte a largo plazo (LTS)
La actualización de su versión de Java cada 6 meses
no es una perspectiva tentadora para muchas
organizaciones. Por lo tanto, habrá versiones de
soporte a largo plazo (LTS) designadas cada tres años.
La primera versión de LTS será el lanzamiento de
septiembre de 2018.
Eso también significa que Java 9 no estará disponible
para las versiones compatibles a largo plazo.
37. Conclusiones
Desde una perspectiva de operaciones, esperar al
lanzamiento de la primera versión soporte a largo
plazo (LTS) es una estrategia atractiva. Desde una
perspectiva de desarrollo, hay demasiados cambios
importantes que surgen del JDK modularizado para
posponer la adopción.
La recomendación de los expertos es comenzar a
desarrollar su aplicación sobre Java 9 lo antes
posible. No tiene que usar módulos para su
aplicación cuando se migre a Java 9; Los módulos
son completamente opcionales.
Una opción es comenzar a usar JDK 9 para
desarrollar sus aplicaciones, pero apuntando a JDK 8
como tiempo de ejecución. Un nuevo indicador (flag)
'--release' para este escenario.
42. Asuntos Legales
Todas las marcas registradas, así como todos los
logotipos, imágenes, fotografías, audio y vídeos
mostrados en esta presentación son propiedad de
sus respectivos propietarios y/o representantes.
Su utilización es solamente para fines ilustrativos.