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>
ExpressionEvaluator eval = new ExpressionEvaluator(); eval.cook("1+1"); System.out.println(eval.evaluate(null));