14 de nov. de 2020

Criando JARs de aplicações JavaFX

O FAT JAR (JAR Gordo) é um tipo de distribuição de aplicações Java onde um único JAR contém todas as dependencias  para a aplicação ser executada, necessitando somente de uma máquina virtual Java, uma JVM.

Para qualquer aplicação Java baseada em maven, criar um FAT JAR poderia ser resolvido usando o plugin Maven Shade. No entanto, criar FAT Jars com JavaFX pode ser um desafio, pois JavaFX usa módulos.

Felizmente esse assunto foi intensamente discutido na internet e uma boa explicação e olução foi proposta pelo Jose Pereda nessa resposta no StackOverflow.

Nesse post eu quero brevemente compartilhar os passos para fazer um FAT JAR e postar um exemplo do meu github para que outros possam criar seus próprios JARs baseados nesses exemplo.


Como criar um JAR de uma aplicação JavaFX?

1- Crie uma classe com o método main para rodar sua aplicação. Essa classe precisa ter o método main e chamar a sua real aplicação usando o método main dela;

2- Adicione o plugin shade para o seu projeto. Para quem usar o Gradle notem que o próprio José Pereda postou uma resposta sobre isso no Stack Overflow;

3- Na sua configuração do plugin shade certifique-se que você configurou a classe que criou no passo 1.

Isso é basicamente tudo que você precisa. Se não estiver claro, cheque meu exemplo no github. Os três arquivos, App.java, Main.java e pom.xml podem ser vistos abaixo.