-
- 所有已知实现类:
-
NashornScriptEngineFactory
public interface ScriptEngineFactory
ScriptEngineFactory
用于描述和实例化ScriptEngines
。
实现ScriptEngine
每个类都有一个相应的工厂,它暴露了描述引擎类的元数据。
ScriptEngineManager
使用ServiceLoader
类中描述的服务提供程序加载程序机制来获取ScriptEngineFactory
实例的实例。 参见ScriptEngineManager()
和ScriptEngineManager(java.lang.ClassLoader)
。- 从以下版本开始:
- 1.6
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 String
getEngineName()
返回ScriptEngine
的全名。String
getEngineVersion()
返回ScriptEngine
的版本。List<String>
getExtensions()
返回一个不可变的文件扩展名列表,它们通常标识以ScriptEngine
支持的语言编写的脚本。String
getLanguageName()
返回此ScriptEngine
支持的脚本语言的名称。String
getLanguageVersion()
返回此ScriptEngine
支持的脚本语言版本。String
getMethodCallSyntax(String obj, String m, String... args)
返回一个String,可以使用支持的脚本语言的语法来调用Java对象的方法。List<String>
getMimeTypes()
返回一个不可变的mimetype列表,与引擎可执行的脚本相关联。List<String>
getNames()
返回短名称的不可变列表ScriptEngine
,可用于识别ScriptEngine
由ScriptEngineManager
。String
getOutputStatement(String toDisplay)
返回一个可用作语句的字符串,使用支持的脚本语言的语法显示指定的String。Object
getParameter(String key)
返回属性的值,该属性的含义可能是实现特定的。String
getProgram(String... statements)
返回带有给定语句的有效脚本语言可执行程序。ScriptEngine
getScriptEngine()
返回与此ScriptEngineFactory
相关联的ScriptEngine
一个实例。
-
-
-
方法详细信息
-
getEngineName
String getEngineName()
返回ScriptEngine
的全名。 例如,基于Mozilla Rhino Javascript引擎的实现可能会返回Rhino Mozilla Javascript Engine 。- 结果
- 引擎实现的名称。
-
getEngineVersion
String getEngineVersion()
返回ScriptEngine
的版本。- 结果
-
ScriptEngine
实现版本。
-
getExtensions
List<String> getExtensions()
返回一个不可变的文件扩展名列表,它们通常标识以ScriptEngine
支持的语言编写的脚本。 该数组由ScriptEngineManager
用于实现其getEngineByExtension
方法。- 结果
- 扩展列表。
-
getMimeTypes
List<String> getMimeTypes()
返回一个不可变的mimetype列表,与引擎可执行的脚本相关联。 该列表由ScriptEngineManager
类用于实现其getEngineByMimetype
方法。- 结果
- mime类型列表。
-
getNames
List<String> getNames()
返回短名称的不可变列表ScriptEngine
,可用于识别ScriptEngine
由ScriptEngineManager
。 例如,基于Mozilla Rhino Javascript引擎的实现可能会返回包含{“javascript”,“rhino”}的列表。- 结果
- 一个不可变的名单
-
getLanguageName
String getLanguageName()
返回此ScriptEngine
支持的脚本语言的名称。- 结果
- 支持的语言的名称。
-
getLanguageVersion
String getLanguageVersion()
返回此ScriptEngine
支持的脚本语言版本。- 结果
- 所支持语言的版本。
-
getParameter
Object getParameter(String key)
返回属性的值,该属性的含义可能是实现特定的。 在所有实现中定义值的键是:- ScriptEngine.ENGINE
- ScriptEngine.ENGINE_VERSION
- ScriptEngine.LANGUAGE
- ScriptEngine.LANGUAGE_VERSION
- ScriptEngine.NAME
这些键中的值是由返回的字符串
getEngineName
,getEngineVersion
,getLanguageName
,getLanguageVersion
用于第一四个键分别。 对于NAME,返回getNames
返回的其中一个字符串。
一个保留密钥,THREADING
,其值描述了引擎在并发执行脚本和维护状态方面的行为。THREADING
键的这些值为:-
null
- 引擎实现不是线程安全的,不能用于在多个线程上同时执行脚本。 -
"MULTITHREADED"
- 引擎实现是内部线程安全的,并且脚本可以并发执行,尽管在一个线程上执行脚本的效果对于其他线程上的脚本可能是可见的。 -
"THREAD-ISOLATED"
- 该实现满足“MULTITHREADED”的要求,并且引擎为在不同线程上执行的脚本中的符号保持独立值。 -
"STATELESS"
- 实现满足"THREAD-ISOLATED"
的要求。 此外,脚本执行不改变的映射Bindings
这是发动机范围ScriptEngine
。 特别地,Bindings
的键及其相关值在脚本执行之前和之后是相同的。
实现可以定义实现特定的密钥。- 参数
-
key
- 参数的名称 - 结果
-
给定参数的值。
如果没有为密钥分配值,则返回
null
。 - 异常
-
NullPointerException
- 如果键为空。
-
getMethodCallSyntax
String getMethodCallSyntax(String obj, String m, String... args)
返回一个String,可以使用支持的脚本语言的语法来调用Java对象的方法。 例如,Javascript引擎的实现可能是public String getMethodCallSyntax(String obj, String m, String... args) { String ret = obj; ret += "." + m + "("; for (int i = 0; i < args.length; i++) { ret += args[i]; if (i < args.length - 1) { ret += ","; } } ret += ")"; return ret; }
- 参数
-
obj
- 表示要调用其方法的对象的名称。 名称是一个用于创建使用绑定put
的方法ScriptEngine
,所述put
一个的方法ENGINE_SCOPE
Bindings
,或setAttribute
的方法ScriptContext
。 脚本中使用的标识符可以是指定的标识符的装饰形式。 -
m
- 要调用的方法的名称。 -
args
- 方法调用中参数的名称。 - 结果
- 用于在脚本语言语法中调用方法的String。
-
getOutputStatement
String getOutputStatement(String toDisplay)
返回一个可用作语句的字符串,使用支持的脚本语言的语法显示指定的String。 例如,Perl引擎的实现可能是public String getOutputStatement(String toDisplay) { return "print(" + toDisplay + ")"; }
- 参数
-
toDisplay
- 要返回的语句显示的字符串。 - 结果
- 用于在脚本语言语法中显示String的字符串。
-
getProgram
String getProgram(String... statements)
返回带有给定语句的有效脚本语言可执行程序。 例如PHP引擎的实现可能是:public String getProgram(String... statements) { String retval = "<?\n"; int len = statements.length; for (int i = 0; i < len; i++) { retval += statements[i] + ";\n"; } return retval += "?>"; }
- 参数
-
statements
- 要执行的语句。 可能会返回值为getMethodCallSyntax
和getOutputStatement
方法。 - 结果
- 该程序
- 异常
-
NullPointerException
- 如果statements
数组或其任何元素为空
-
getScriptEngine
ScriptEngine getScriptEngine()
返回与此ScriptEngineFactory
相关联的ScriptEngine
的实例。 通常返回一个新的ScriptEngine,但实现可能会共享,共享或重用引擎。- 结果
-
一个新的
ScriptEngine
实例。
-
-