【发布时间】:2018-10-04 15:43:45
【问题描述】:
我想知道使用Java Scripting API (JSR223) 执行代码时的限制,例如使用Beanshell 或groovy 语言,
使用选择为 groovy 的语言不能完成/执行哪些操作?是否有一些语言功能不能在脚本中使用?
【问题讨论】:
标签: java groovy beanshell jsr223
我想知道使用Java Scripting API (JSR223) 执行代码时的限制,例如使用Beanshell 或groovy 语言,
使用选择为 groovy 的语言不能完成/执行哪些操作?是否有一些语言功能不能在脚本中使用?
【问题讨论】:
标签: java groovy beanshell jsr223
java 脚本 API 使用 AccessController.doPrivileged() 运行脚本,因此根据上下文可能会有任何限制。
例如限制访问文件系统...
【讨论】:
main执行的所有代码(方法/函数除外)。并且您不能在方法内声明静态变量。但是您可以在 groovy 脚本中使用静态变量声明内部类,例如:class MyConst { static int i = 123 } 并从脚本访问它:MyConst.i