学习 Janino(一):初识 Janino

Janino 是一个极小、极快的 Java 编译器。

Janino 不仅可以像 JAVAC 一样将 Java 源码文件编译为字节码文件,还可以编译内存中的 Java 表达式、块、类和源码文件,加载字节码并在 JVM 中直接执行。

Janino 同样可以用于静态代码分析和代码操作。

在 Apache Spark 中,使用 Janino 用于生成代码优化物理执行计划。

依赖

编辑 pom.xml 文件添加依赖:

<dependency>  
    <groupId>org.codehaus.janino</groupId>
    <artifactId>janino</artifactId>
    <version>3.0.11</version>
</dependency>  

DEMO

ExpressionEvaluator eval = new ExpressionEvaluator();  
eval.cook("1+1");  
System.out.println(eval.evaluate(null));