-
- 所有已知实现类:
-
NashornScriptEngineFactory
public interface ScriptEngineFactory
ScriptEngineFactory
用于描述和实例化ScriptEngines
。
实现ScriptEngine
每个类都有一个相应的工厂,它公开描述引擎类的元数据。
ScriptEngineManager
使用ServiceLoader
类中描述的服务提供程序加载程序机制来获取ScriptEngineFactory
实例的实例。 见ScriptEngineManager()
和ScriptEngineManager(java.lang.ClassLoader)
。- 从以下版本开始:
- 1.6
-
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 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,该String可用于使用支持的脚本语言的语法调用Java对象的方法。List<String>
getMimeTypes()
返回mimetypes的不可变列表,与可由引擎执行的脚本相关联。List<String>
getNames()
返回短名称的不可变列表ScriptEngine
,可用于识别ScriptEngine
由ScriptEngineManager
。String
getOutputStatement(String toDisplay)
返回一个String,该String可用作使用支持的脚本语言的语法显示指定String的语句。Object
getParameter(String key)
返回其含义可能是特定于实现的属性的值。String
getProgram(String... statements)
返回具有给定语句的有效脚本语言可执行程序。ScriptEngine
getScriptEngine()
返回与此ScriptEngineFactory
关联的ScriptEngine
的实例。
-
-
-
方法详细信息
-
getEngineName
String getEngineName()
返回ScriptEngine
的全名。 例如,基于Mozilla Rhino Javascript引擎的实现可能会返回Rhino Mozilla Javascript引擎 。- 结果
- 引擎实现的名称。
-
getEngineVersion
String getEngineVersion()
返回ScriptEngine
的版本。- 结果
-
ScriptEngine
实现版本。
-
getExtensions
List<String> getExtensions()
返回文件扩展名的不可变列表,通常标识以此ScriptEngine
支持的语言编写的脚本。 该阵列由ScriptEngineManager
用于实现其getEngineByExtension
方法。- 结果
- 扩展名列表。
-
getMimeTypes
List<String> getMimeTypes()
返回mimetypes的不可变列表,与可由引擎执行的脚本相关联。 该列表由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,该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用于在脚本语言的语法中调用该方法。
- 异常
-
NullPointerException
- 如果obj或m或args或args的任何元素为null。
-
getOutputStatement
String getOutputStatement(String toDisplay)
返回一个String,该String可用作使用支持的脚本语言的语法显示指定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
数组或其任何元素为null
-
getScriptEngine
ScriptEngine getScriptEngine()
返回与此ScriptEngineFactory
关联的ScriptEngine
的实例。 通常返回一个新的ScriptEngine,但实现可以汇集,共享或重用引擎。- 结果
-
一个新的
ScriptEngine
实例。
-
-