O GraalVM é uma máquina virtual que vai além da execução tradicional do Java, permitindo rodar diversas linguagens dentro da JVM, como JavaScript, Python, Ruby, R e até C.
Isso abre espaço para cenários interessantes, como reaproveitar trechos de código JavaScript em uma aplicação Java ou permitir que sua aplicação execute scripts dinâmicos enviados por usuários.
Exemplo prático no Java
Aqui está um exemplo básico de como rodar JavaScript dentro do Java usando a API Polyglot do GraalVM:
import org.graalvm.polyglot.*;
public class RunJSFile {
public static void main(String[] args) {
// Criar contexto do GraalVM
try (Context context = Context.create()) {
// Executar código JavaScript simples
Value result = context.eval("js", "40 + 2");
System.out.println("Resultado: " + result.asInt()); // Output: 42
// Executar função JavaScript
context.eval("js", """
function saudacao(nome) {
return 'Hello, ' + nome + '!;
}
""");
Value saudacao = context.getBindings("js").getMember("saudacao");
String mensagem = saudacao.execute("Felix").asString();
System.out.println(mensagem); // Output: Hello, Felix!
}
}
}
Saída esperada
Resultado: 42
Hello, Felix!
Quando usar isso?
Essa técnica pode ser útil quando:
- Você precisa reaproveitar bibliotecas JavaScript já existentes em uma aplicação Java.
- Quer manter lógica de negócio configurável, separando scripts do código principal.
- Deseja que usuários possam escrever plugins ou regras dinâmicas em JavaScript que serão executadas pela sua aplicação.
👉 Com esse recurso, sua aplicação Java ganha flexibilidade e consegue integrar código JavaScript sem depender de um engine externo, tudo rodando dentro da própria JVM com GraalVM.