Java-何时使用JSR223脚本执行基于Java的语言

时间:2019-06-20 05:31:04

标签: java freemarker velocity jsr223

Java脚本语言可以同时使用Beanshell和Groovy进行JSR223脚本编写(有少量限制/更改)

基于Java(模板引擎)的项目为 Velocity有JSR223支持

  

速度可以集成到Java脚本语言框架(由JSR-223 API定义)中。

Freemarker在其contributors page

中建议
  
      
  • javax.script(JSR-223)支持
  •   

但是什么时候通过脚本执行基于Java的代码更好呢?什么时候可以将其作为常规的Java代码执行呢?

1 个答案:

答案 0 :(得分:0)

我发现了一种安全用法,您可以在limited access/sandbox中使用ScriptEngineManager(java.lang.ClassLoader)来执行脚本

Q:

  

我不希望任何脚本有权访问我的任何课程。

A:

  

有一个使用类加载器的ScriptEngineManager构造函数。类加载器用于加载脚本引擎实现。当类继承其类加载器时,脚本引擎及其创建的任何对象也应使用该类加载器。

     

该类加载器需要拒绝所有未列入白名单的类。