gpt4 book ai didi

java - JVM 的最佳沙盒表达式语言

转载 作者:行者123 更新时间:2023-12-04 09:43:12 26 4
gpt4 key购买 nike

我想要一种在 JVM 上运行并支持

的表达式语言
  • 数学表达式,包括运算符优先级
  • 字符串表达式,如子字符串等
  • 支持命名函数
    • 这使我能够精确地装饰和控制可以执行的功能和功能。
  • 读/写“无类型”变量/允许以受控方式进行类型转换。
  • 不允许任意的java scriptlets。
    • 不应该包含像 new Someclass() 这样的结构
    • 不能执行任意静态或其他方法
  • 不允许任何类似 OGNL 的表达式。
  • 我只想让我映射的函数可用。
  • 支持控制结构,例如 if this then that 是目前可选的。
  • 必须是可嵌入的。

previous stackoverflow question类似,但是:

  • 并没有像上面那样真正回答“如何”或“什么”,
  • 允许 java 对象表达式,从 SecurityManager 抛出异常以停止方法执行,这是令人讨厌和错误的。
  • java object like expressions 在解析时应该是一个错误。

jexel似乎是最接近的匹配,但许可证有点可怕(GPL/商业)。

最佳答案

如果您只想让脚本输出文本,那么Apache Velocity非常适合您的限制。它在只能访问您提供给它的对象的环境中运行,但可以执行基本数学之类的操作。

Apache license也比 GPL 更友好。

关于java - JVM 的最佳沙盒表达式语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4019835/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com