Java 适用于JVM的最佳沙盒表达式语言
我想要一种在JVM上运行的表达式语言,包括对Java 适用于JVM的最佳沙盒表达式语言,java,expression,Java,Expression,我想要一种在JVM上运行的表达式语言,包括对 数学表达式,包括运算符优先级 字符串表达式,如子字符串等 支持命名函数 这使我能够精确地修饰和控制可以执行的功能 “无类型”的读/写变量/允许以受控方式进行类型转换 不允许任意的java脚本。 不应该包括像newsomeclass()这样的构造 无法执行任意静态或其他方法 不允许任何类似OGNL的表达式 我只希望映射的函数可用 对控件构造的支持,如“如果这样,那么那就暂时是可选的” 必须是可嵌入的 这是相似的,但: 没有像上面那样回答“
- 数学表达式,包括运算符优先级
- 字符串表达式,如子字符串等
- 支持命名函数
- 这使我能够精确地修饰和控制可以执行的功能
- “无类型”的读/写变量/允许以受控方式进行类型转换
- 不允许任意的java脚本。
- 不应该包括像newsomeclass()这样的构造
- 无法执行任意静态或其他方法
- 不允许任何类似OGNL的表达式李>
- 我只希望映射的函数可用
- 对控件构造的支持,如“如果这样,那么那就暂时是可选的”
- 必须是可嵌入的
- 没有像上面那样回答“如何”或“什么”
- 允许java对象表达式,从SecurityManager引发异常以停止方法执行,这是令人讨厌的错误
- java类对象表达式在解析时应该是错误的
似乎是最接近可能的匹配,但许可证有点可怕(GPL/商业)。如果您只想让脚本输出文本,那么它非常适合您的约束。它运行在一个环境中,在这个环境中,它只能访问您提供给它的对象,但可以执行基本数学之类的操作
它也比GPL友好一点。我讨厌velocity,如果我回忆起它的错误/异常处理糟糕/糟糕的话。