The scripting API consists of interfaces and classes that define Java Scripting Engines and provides a framework for their use in Java applications. This API is intended for use by application programmers who wish to execute programs written in scripting languages in their Java applications. The scripting language programs are usually provided by the end-users of the applications.
The main areas of functionality of javax.script
package include
Script execution: Scripts
are streams of characters used as sources for programs executed by
script engines. Script execution uses
eval
methods of
ScriptEngine
and methods of the
Invocable
interface.
Binding: This facility
allows Java objects to be exposed to script programs as named
variables. Bindings
and
ScriptContext
classes are used for this purpose.
Compilation: This
functionality allows the intermediate code generated by the
front-end of a script engine to be stored and executed repeatedly.
This benefits applications that execute the same script multiple
times. These applications can gain efficiency since the engines'
front-ends only need to execute once per script rather than once per
script execution. Note that this functionality is optional and
script engines may choose not to implement it. Callers need to check
for availability of the Compilable
interface using an instanceof check.
Invocation: This
functionality allows the reuse of intermediate code generated by a
script engine's front-end. Whereas Compilation allows entire scripts
represented by intermediate code to be re-executed, Invocation
functionality allows individual procedures/methods in the scripts to
be re-executed. As in the case with compilation, not all script
engines are required to provide this facility. Caller has to check
for Invocable
availability.
Script engine discovery: Applications
written to the Scripting API might have specific requirements on
script engines. Some may require a specific scripting language
and/or version while others may require a specific implementation
engine and/or version. Script engines are packaged in a specified
way so that engines can be discovered at runtime and queried for
attributes. The Engine discovery mechanism is based on the service-provider
loading facility described in the java.
class.
ScriptEngineManager
includes
getEngineFactories
method to get all
ScriptEngineFactory
instances
discovered using this mechanism. ScriptEngineFactory
has
methods to query attributes about script engine.
Modifier and Type | Interface and Description |
---|---|
public interface | Bindings
A mapping of key/value pairs, all of whose keys are
|
public interface | Compilable
The optional interface implemented by ScriptEngines whose methods compile scripts to a form that can be executed repeatedly without recompilation. |
public interface | Invocable
The optional interface implemented by ScriptEngines whose methods allow the invocation of procedures in scripts that have previously been executed. |
public interface | ScriptContext
The interface whose implementing classes are used to connect Script Engines with objects, such as scoped Bindings, in hosting applications. |
public interface | ScriptEngine
|
public interface | ScriptEngineFactory
|
Modifier and Type | Class and Description |
---|---|
public abstract class | AbstractScriptEngine
Provides a standard implementation for several of the variants of the |
public abstract class | CompiledScript
Extended by classes that store results of compilations. |
public class | ScriptEngineManager
The |
public class | ScriptException
The generic |
public class | SimpleBindings
A simple implementation of Bindings backed by
a |
public class | SimpleScriptContext
Simple implementation of ScriptContext. |