A versão 9 trouxe um novo mecanismo de modularização e distribuição de aplicações Java: o Java Platform Module System. Em resumo, com ele podemos criar runtime customizado para rodar nossas aplicações, sem a necessidade de exigir que o usuário instale previamente o JRE – que, a propósito, foi descontinuado a partir da versão 11. É uma mudança e tanto, mas acho que valerá a pena: no artigo, o autor gera uma aplicação com tamanho diminuto em comparação com o tamanho completo de JRE que chegou a bater perto de 200Mb.
Veja o artigo neste link.