包 javax.script


javax.script

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

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

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

  2. Binding:此工具允许将 Java 对象作为命名变量公开给脚本程序。 Bindings ScriptContext 类用于此目的。

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

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

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

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