Module java.scripting

Package javax.script


package javax.script

脚本API由定义Java脚本引擎的接口和类组成,并为它们在Java应用程序中的使用提供框架。该API旨在供希望在其Java应用程序中执行用脚本语言编写的程序的应用程序员使用。脚本语言程序通常由应用程序的最终用户提供。

javax.script包的主要功能领域包括

  1. 脚本执行:脚本是由脚本引擎执行的程序的源字符流。脚本执行使用eval方法和ScriptEngine的方法以及Invocable接口的方法。

  2. 绑定:此功能允许将Java对象作为命名变量暴露给脚本程序。用于此目的的是BindingsScriptContext类。

  3. 编译:此功能允许脚本引擎的前端生成的中间代码被存储并重复执行。这有利于多次执行相同脚本的应用程序。这些应用程序可以获得效率,因为引擎的前端只需要对每个脚本执行一次,而不是每次脚本执行一次。请注意,此功能是可选的,脚本引擎可以选择不实现它。调用者需要使用instanceof检查来检查Compilable接口的可用性。

  4. 调用:此功能允许脚本引擎的前端生成的中间代码被重复使用。编译允许重新执行由中间代码表示的整个脚本,而调用功能允许重新执行脚本中的单个过程/方法。与编译一样,并非所有脚本引擎都需要提供此功能。调用者必须检查Invocable的可用性。

  5. 脚本引擎发现:针对脚本API编写的应用程序可能对脚本引擎有特定要求。有些可能需要特定的脚本语言和/或版本,而其他可能需要特定的实现引擎和/或版本。脚本引擎以指定的方式打包,以便在运行时发现引擎并查询属性。引擎发现机制基于在ServiceLoader类中描述的服务提供程序加载功能。ScriptEngineManager包括getEngineFactories方法,以获取使用此机制发现的所有ScriptEngineFactory实例。 ScriptEngineFactory具有用于查询有关脚本引擎属性的方法。

自版本:
1.6
  • Class
    Description
    eval方法的几个变体提供了标准实现。
    一组键/值对的映射,所有键都是Strings
    由ScriptEngines实现的可选接口,其方法将脚本编译为可以重复执行而无需重新编译的形式。
    由存储编译结果的类扩展。
    由ScriptEngines实现的可选接口,其方法允许调用先前执行过的脚本中的过程。
    其实现类用于将脚本引擎与主机应用程序中的对象(例如作用域绑定)连接起来的接口。
    ScriptEngine是基本接口,其方法在本规范的每个实现中必须完全可用。
    ScriptEngineFactory用于描述和实例化ScriptEngines
    ScriptEngineManager实现了用于ScriptEngine类的发现和实例化机制,并维护了一个存储所有由管理器创建的引擎共享状态的键/值对集合。
    脚本API的通用Exception类。
    HashMap或其他指定Map支持的Bindings的简单实现。
    ScriptContext的简单实现。