- java.lang.Object
-
- jdk.nashorn.api.scripting.NashornScriptEngineFactory
-
- All Implemented Interfaces:
-
ScriptEngineFactory
public final class NashornScriptEngineFactory extends Object implements ScriptEngineFactory
适用于Nashorn的JSR-223兼容脚本引擎工厂。 引擎答案为:- 名
"nashorn"
,"Nashorn"
,"js"
,"JS"
,"JavaScript"
,"javascript"
,"ECMAScript"
,并"ecmascript"
; - MIME类型
"application/javascript"
,"application/ecmascript"
,"text/javascript"
,并"text/ecmascript"
; - 以及扩展名
"js"
。
getScriptEngine(String[])
创建的引擎中执行的程序将具有可访问的传递参数作为名称为"arguments"
的全局变量。- 从以下版本开始:
- 1.8u40
-
-
构造方法摘要
构造方法 Constructor 描述 NashornScriptEngineFactory()
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 String
getEngineName()
返回ScriptEngine
的全名。String
getEngineVersion()
返回ScriptEngine
的版本。List<String>
getExtensions()
返回一个不可变的文件扩展名列表,它们通常标识以ScriptEngine
支持的语言编写的脚本。String
getLanguageName()
返回此ScriptEngine
支持的脚本语言的名称。String
getLanguageVersion()
返回此ScriptEngine
支持的脚本语言版本。String
getMethodCallSyntax(String obj, String method, 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
的实例。ScriptEngine
getScriptEngine(ClassLoader appLoader)
创建一个使用给定的类加载器初始化的新脚本引擎。ScriptEngine
getScriptEngine(String... args)
创建一个使用给定参数初始化的新脚本引擎。ScriptEngine
getScriptEngine(String[] args, ClassLoader appLoader)
创建一个新的Script引擎,并使用给定的参数和给定的类加载器进行初始化。ScriptEngine
getScriptEngine(String[] args, ClassLoader appLoader, ClassFilter classFilter)
创建一个使用给定参数,类加载器和类过滤器初始化的新脚本引擎。ScriptEngine
getScriptEngine(ClassFilter classFilter)
创建一个使用给定的类过滤器初始化的新脚本引擎。
-
-
-
方法详细信息
-
getEngineName
public String getEngineName()
描述从接口ScriptEngineFactory
复制返回ScriptEngine
的全名。 例如,基于Mozilla Rhino Javascript引擎的实现可能会返回Rhino Mozilla Javascript Engine 。- Specified by:
-
getEngineName
在接口ScriptEngineFactory
- 结果
- 引擎实现的名称。
-
getEngineVersion
public String getEngineVersion()
说明从接口ScriptEngineFactory
复制返回ScriptEngine
的版本。- Specified by:
-
getEngineVersion
在接口ScriptEngineFactory
- 结果
-
ScriptEngine
实现版本。
-
getExtensions
public List<String> getExtensions()
说明从界面ScriptEngineFactory
复制返回一个不可变的文件扩展名列表,它们通常标识以ScriptEngine
支持的语言编写的脚本。 该阵列由ScriptEngineManager
用于实现其getEngineByExtension
方法。- Specified by:
-
getExtensions
在接口ScriptEngineFactory
- 结果
- 扩展列表。
-
getLanguageName
public String getLanguageName()
说明从接口ScriptEngineFactory
复制返回此ScriptEngine
支持的脚本语言的名称。- Specified by:
-
getLanguageName
接口ScriptEngineFactory
- 结果
- 支持的语言的名称。
-
getLanguageVersion
public String getLanguageVersion()
描述从接口ScriptEngineFactory
复制返回此ScriptEngine
支持的脚本语言版本。- Specified by:
-
getLanguageVersion
在接口ScriptEngineFactory
- 结果
- 所支持语言的版本。
-
getMethodCallSyntax
public String getMethodCallSyntax(String obj, String method, String... args)
说明从接口ScriptEngineFactory
复制返回一个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; }
- Specified by:
-
getMethodCallSyntax
在接口ScriptEngineFactory
- 参数
-
obj
- 表示要调用其方法的对象的名称。 名称是一个用于创建使用绑定put
的方法ScriptEngine
,所述put
一个的方法ENGINE_SCOPE
Bindings
,或setAttribute
的方法ScriptContext
。 脚本中使用的标识符可以是指定的标识符的装饰形式。 -
method
- 要调用的方法的名称。 -
args
- 方法调用中的参数的名称。 - 结果
- 用于在脚本语言语法中调用方法的String。
-
getMimeTypes
public List<String> getMimeTypes()
描述从接口ScriptEngineFactory
复制返回一个不可变的mimetype列表,与引擎可执行的脚本相关联。 该列表由ScriptEngineManager
类用于实现其getEngineByMimetype
方法。- Specified by:
-
getMimeTypes
在接口ScriptEngineFactory
- 结果
- mime类型列表。
-
getNames
public List<String> getNames()
说明从界面ScriptEngineFactory
复制返回一个不可变的ScriptEngine
的短名单,可以用来标识ScriptEngine
的ScriptEngineManager
。 例如,基于Mozilla Rhino Javascript引擎的实现可能会返回包含{“javascript”,“rhino”}的列表。- Specified by:
-
getNames
在接口ScriptEngineFactory
- 结果
- 一个不可变的名单
-
getOutputStatement
public String getOutputStatement(String toDisplay)
说明从界面ScriptEngineFactory
复制返回一个可用作语句的字符串,使用支持的脚本语言的语法显示指定的String。 例如,Perl引擎的实现可能是public String getOutputStatement(String toDisplay) { return "print(" + toDisplay + ")"; }
- Specified by:
-
getOutputStatement
在接口ScriptEngineFactory
- 参数
-
toDisplay
- 要返回的语句显示的字符串。 - 结果
- 用于在脚本语言语法中显示String的字符串。
-
getParameter
public Object getParameter(String key)
说明从接口ScriptEngineFactory
复制返回属性的值,该属性的含义可能是实现特定的。 在所有实现中定义值的键是:- 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
的键及其相关值在脚本执行前后相同。
实现可以定义实现特定的密钥。- Specified by:
-
getParameter
在接口ScriptEngineFactory
- 参数
-
key
- 参数的名称 - 结果
-
给定参数的值。
如果没有为密钥分配值,则返回
null
。
-
getProgram
public String getProgram(String... statements)
描述从接口ScriptEngineFactory
复制返回带有给定语句的有效脚本语言可执行程序。 例如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 += "?>"; }
- Specified by:
-
getProgram
在接口ScriptEngineFactory
- 参数
-
statements
- 要执行的语句。 可能会返回值为getMethodCallSyntax
和getOutputStatement
方法。 - 结果
- 该程序
-
getScriptEngine
public ScriptEngine getScriptEngine()
说明从接口ScriptEngineFactory
复制返回与此ScriptEngineFactory
相关联的ScriptEngine
的实例。 通常返回一个新的ScriptEngine,但实现可能会共享,共享或重用引擎。- Specified by:
-
getScriptEngine
在接口ScriptEngineFactory
- 结果
-
一个新的
ScriptEngine
实例。
-
getScriptEngine
public ScriptEngine getScriptEngine(ClassLoader appLoader)
创建一个使用给定的类加载器初始化的新脚本引擎。- 参数
-
appLoader
- 类加载器用作脚本“app”类加载器。 - 结果
- 新创建的脚本引擎。
- 异常
-
SecurityException
- 如果安全经理的checkPermission
否认RuntimePermission("nashorn.setConfig")
-
getScriptEngine
public ScriptEngine getScriptEngine(ClassFilter classFilter)
创建一个使用给定的类过滤器初始化的新脚本引擎。- 参数
-
classFilter
- 类过滤器使用。 - 结果
- 新创建的脚本引擎。
- 异常
-
NullPointerException
- 如果classFilter
是null
-
SecurityException
- 如果安全经理的checkPermission
否认RuntimePermission("nashorn.setConfig")
-
getScriptEngine
public ScriptEngine getScriptEngine(String... args)
创建一个使用给定参数初始化的新脚本引擎。- 参数
-
args
- 参数数组传递给脚本引擎。 - 结果
- 新创建的脚本引擎。
- 异常
-
NullPointerException
- 如果args
是null
-
SecurityException
- 如果安全管理员的checkPermission
否认RuntimePermission("nashorn.setConfig")
-
getScriptEngine
public ScriptEngine getScriptEngine(String[] args, ClassLoader appLoader)
创建一个新的Script引擎,并使用给定的参数和给定的类加载器进行初始化。- 参数
-
args
- 参数数组传递给脚本引擎。 -
appLoader
- 类加载器用作脚本“app”类加载器。 - 结果
- 新创建的脚本引擎。
- 异常
-
NullPointerException
- 如果args
是null
-
SecurityException
- 如果安全管理员的checkPermission
否认RuntimePermission("nashorn.setConfig")
-
getScriptEngine
public ScriptEngine getScriptEngine(String[] args, ClassLoader appLoader, ClassFilter classFilter)
创建一个使用给定参数,类加载器和类过滤器初始化的新脚本引擎。- 参数
-
args
- 参数数组传递给脚本引擎。 -
appLoader
- 类加载器用作脚本“app”类加载器。 -
classFilter
- 类过滤器使用。 - 结果
- 新创建的脚本引擎。
- 异常
-
NullPointerException
- 如果args
或classFilter
是null
-
SecurityException
- 如果安全经理的checkPermission
否认RuntimePermission("nashorn.setConfig")
-
-