动态编译 Java 的神器 Liquor v1.3.10 发布
Liquor 是一个开源的轻量级 Java 动态编译器(零依赖,40KB),它可以在运行时编译 Java 字符串代码片段、类、方法等。[*]源码地址:https://gitee.com/noear/liquor
基础编译特性:
[*]可以单个类编译
[*]可以多个类同时编译
[*]可以增量编译
增值特性:
[*]java 表达式引擎
[*]java 脚本引擎(支持 java8 到 java23 语法)
本次更新
[*]添加 Scripts:eval(String, Map) 便利方法
[*]优化 LiquorEvaluator 编译的脚本允许显示抛出异常
特性演示
[*]动态编译器应用
//可以复用(不要,不断的新建)DynamicCompiler compiler = new DynamicCompiler();String className = "HelloWorld";String classCode = "import java.util.HashMap;\n\n"+ "public class HelloWorld { " + " public static void helloWorld() { " + " System.out.println(\"Hello, world!\"); " + " } " + "}";//添加源码(可多个)并 构建compiler.addSource(className, classCode);compiler.build();Class<?> clazz = compiler.getClassLoader().loadClass(className);clazz.getMethod("helloWorld").invoke(null);
[*]表达式应用
Map<String, Object> ctx = new HashMap<>();ctx.put("b", 3);ctx.put("a", 22);Exprs.eval("b + a", ctx); //=>25
[*]脚本应用
Scripts.eval("System.out.println(\"hello word\");");
页:
[1]