O GraalVM é uma JVM de alto desempenho que permite rodar aplicações Java mais rapidamente e gerar executáveis nativos com native-image, reduzindo o tempo de inicialização e o consumo de memória.
Neste post, você aprenderá a instalar e configurar o GraalVM no macOS e a testar a criação de um executável nativo com um Hello World.
Para isso, basta seguir os passos abaixo:
- Instalando o SDKMAN
O SDKMAN é a maneira mais prática de gerenciar versões do Java, incluindo o GraalVM. Para instalá-lo, execute o seguinte comando no terminal:
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
Após a instalação, você poderá gerenciar diferentes versões do Java com facilidade.
- Instalando o GraalVM
Agora, vamos instalar o GraalVM usando o SDKMAN:
sdk install java 22.3.r17-grl
sdk use java 22.3.r17-grl
Para garantir que a instalação foi bem-sucedida, verifique a versão do Java:
java -version
Resultado esperado:
- Instalando o Native Image
O native-image permite converter aplicações Java em executáveis nativos que rodam sem necessidade de uma JVM. Para instalá-lo, execute:
gu install native-image
native-image --version
Agora, o native-image está pronto para uso!
- Criando um Executável Nativo (Hello World)
Agora, vamos testar a instalação gerando um executável nativo.
Passo 1: Criar o arquivo HelloWorld.java
Crie um arquivo chamado HelloWorld.java e adicione o seguinte código:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Olá, GraalVM Native Image!");
}
}
Passo 2: Compilar e Criar o Executável Nativo
Agora, compile o código e gere o binário nativo:
javac HelloWorld.java
native-image HelloWorld
./helloworld
Após a execução, um arquivo binário chamado helloworld será gerado.
Passo 3: Executar o Binário
Agora, rode o executável gerado:
./helloworld
Resultado:
Olá, GraalVM Native Image!
Atualmente o GraalVM é uma excelente ferramenta para criar aplicações Java com alto desempenho e menor consumo de memória. Com o native-image, você pode converter aplicações Java em executáveis standalone, ideais para microsserviços, serverless e ferramentas CLI.
Top comments (0)