🔥 动态编译 Java 的神器 Liquor v1.6.2 发布
Liquor 是一个开源的轻量级 Java 动态编译器(零依赖,40KB),它可以在运行时编译 Java 字符串代码片段、类、方法等。
开源项目地址:
- gitee: https://gitee.com/noear/liquor
- github: https://github.com/noear/liquor
基础编译特性:
- 可以单个类编译
- 可以多个类同时编译
- 可以增量编译
增值功能:
- java 求值表达式引擎
- java 脚本引擎(支持 java8 到 java24 语法)
本次更新
- 使用 getTypeName 替换 getCanonicalName (优化 arm jdk 兼容性)
- 优化 LiquorEvaluator:addSource ';' 号补全处理
- 简化 LiquorEvaluator clazzName 生成,避免冲突可能
- 添加 JavaFileSource 类
特性展示
(1)动态编译展示(编译即服务!)
// A.java public class A { private B b = new B(); } // B.java public class B {} // Demo.java public class Demo { @Test public void test() throws Exception { final DynamicCompiler dynamicCompiler = new DynamicCompiler(); dynamicCompiler.addClassPath(new File(".../test/")); //有此设置。动态编译,也可调试 dynamicCompiler.addSource(new JavaFileSource(new File(".../test/A.java"))); dynamicCompiler.build(); final Class<?> clazz = dynamicCompiler.getClassLoader().loadClass("test.A"); System.out.printf("clazz: %s\n", clazz); } }
(2)求值表示式展示
System.out.println(Exprs.eval("1+1"));
(3)脚本展示
Scripts.eval("System.out.println(\"hello word\");");
(4)JSR223 规范脚本展示
ScriptEngine scriptEngine = scriptEngineManager.getEngineByName("java"); System.out.println(scriptEngine.eval("return 2*6-(6+5);"));

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Shotcut 25.08.16 发布,开源跨平台视频编辑器
Shotcut 25.08.16 现已发布,此版本修复了上一版本 25.07中的错误。具体更新内容如下: 修复了以前版本项目中的 Gain/Volume filter不显示其 UI 或关键帧的问题(在 v25.07 中出现问题)。 修复了Gain/Volume、Fade In Audio 和 Fade Out Audio filters中的 artifacts(在 v25.07 中出现问题)。 修复 Fedora Linux RPM 包频繁崩溃的问题(在 v25.05 中出现问题)。 修复了将 BT.709 color space 转换为 BT.2020 的问题。 在预览中添加了 BT.2020 color space 支持。 修复了路径或名称中包含&的导出文件保存错误名称的问题。 添加导出任务的上下文菜单中添加了Embed Markers as Chapters选项。 更新说明:https://www.shotcut.org/blog/new-release-250816/
- 下一篇
DBeaver 25.1.5 发布
DBeaver 是一个免费开源的通用数据库工具,适用于开发人员和数据库管理员。DBeaver 25.1.5 已发布,更新内容如下: SQL Editor: 带有外键的表现在显示在 autocompletion 列表的顶部 修复了外键条件和子查询的连接建议 重新设计了 SQL 处理设置 AI 助手:增加了执行危险的 AI 生成查询时的确认提示(可配置) Data Editor:添加了在 column data filter 中筛选包含加号及其他特殊字符的值的功能 Navigator:更新了 filter icons 并将其移动到与搜索栏相同的行 Data Transfer: 添加了在数据传输期间在 Query Manager 中保存 SQL logs 的设置 修复了在 data transfer wizard 中编辑数据库名称的问题 General: 如果文件夹或文件被删除,文件编辑器现在会自动关闭 解决了 unexpected 对话框大小调整的问题 Connectivity:驱动程序版本配置已重新设计 Miscellaneous: 保存/另存为图标已重新设计 连接类型的颜色已调整为较不...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 2048小游戏-低调大师作品
- CentOS8编译安装MySQL8.0.19
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS关闭SELinux安全模块
- Linux系统CentOS6、CentOS7手动修改IP地址
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池