quarta-feira, 18 de outubro de 2017

Módulos em Java 9

Em 2017 saiu a versão nova do Java - o Java 9. Com esta versão sai um novo sistema de módulos chamado Jigsaw. Os módulos do Java 9 são uma das maiores mudanças na estrutura do java.
Um Módulo é uma coleção auto-descritiva de Código, Dados e Recursos. Um módulo é um conjunto de Pacotes, Tipos (classes, classes abstratas, interfaces, etc.) com Código e Dados e Recursos.

As aplicações escritas em Java 8 ou anteriores não conhecem suas próprias dependências.
Claro que o javac não compilará nosso código se faltarem dependências de tempo de compilação e, claro, temos ferramentas de compilação e IDEs para nos apoiar com esses casos. Contudo, no tempo de execução, a JVM precisa pesquisar classes necessárias no CLASSPTH novamente, em alguns casos, resultando em diferentes classes sendo carregadas pelo classloader. Assim podemos ter problemas em tempo de execução.
A estrutura modular vem para resolver este problema.
Além disto o sistema JDK atual é muito grande. No Java 9, o próprio JDK foi dividido em pequenos módulos. Portanto, é muito fácil reduzir o aplicativo Java para dispositivos pequenos.


O JDK 9 não contém JRE. No JDK 9, o JRE é separado em uma pasta de distribuição separada. O software JDK 9 contém uma nova pasta "jmods", que contém um conjunto de módulos Java 9 como mostrado abaixo.

No Youtube estão 3 vídeos que trazem uma introdução a este tema.