102 lines · 4.7 KB · HTML
RawDownload
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><html><head><!--Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. This code is free software; you can redistribute it and/or modify itunder the terms of the GNU General Public License version 2 only, aspublished by the Free Software Foundation.  Oracle designates thisparticular file as subject to the "Classpath" exception as providedby Oracle in the LICENSE file that accompanied this code. This code is distributed in the hope that it will be useful, but WITHOUTANY WARRANTY; without even the implied warranty of MERCHANTABILITY orFITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public Licenseversion 2 for more details (a copy is included in the LICENSE file thataccompanied this code). You should have received a copy of the GNU General Public License version2 along with this work; if not, write to the Free Software Foundation,Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USAor visit www.oracle.com if you need additional information or have anyquestions.--> </head><body bgcolor="white"><p>The scripting API consists of interfaces and classes that defineJava <font size=1><sup>TM</sup></font> Scripting Engines and providesa framework for their use in Java applications. This API is intendedfor use by application programmers who wish to execute programswritten in scripting languages in their Java applications. Thescripting language programs are usually provided by the end-users ofthe applications. </p><p>The main areas of functionality of <code>javax.script</code>package include </p><ol>	<li><p><b>Script execution</b>: Scripts	are streams of characters used as sources for  programs executed by	script engines. Script execution uses         {@link javax.script.ScriptEngine#eval eval} methods of	{@link javax.script.ScriptEngine ScriptEngine} and methods of the         {@link javax.script.Invocable Invocable} interface. 	</p>	<li><p><b>Binding</b>: This facility	allows Java objects to be exposed to script programs as named	variables. {@link javax.script.Bindings Bindings} and         {@link javax.script.ScriptContext ScriptContext}	classes are used for this purpose. 	</p>	<li><p><b>Compilation</b>: 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 {@link javax.script.Compilable Compilable}        interface using an <I>instanceof</I> check. 	</p>	<li><p><b>Invocation</b>: 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 {@link javax.script.Invocable Invocable} availability. 	</p>	<li><p><b>Script engine discovery and Metadata</b>: 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	discovery mechanism described in the <b>Jar File Specification</b>.	Script engine implementing classes are packaged in jar files that	include a  text resource named	<b>META-INF/services/javax.script.ScriptEngineFactory</b>. This	resource must include a line for each         {@link javax.script.ScriptEngineFactory ScriptEngineFactory}	that is packaged in the jar file.         {@link javax.script.ScriptEngineManager ScriptEngineManager}	includes         {@link javax.script.ScriptEngineManager#getEngineFactories getEngineFactories} method to get all	{@link javax.script.ScriptEngineFactory ScriptEngineFactory} instances         discovered using this mechanism. <code>ScriptEngineFactory</code> has         methods to query attributes about script engine.	</p></ol> @since 1.6 </body></html>