Class 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
    • 构造方法详细信息

      • NashornScriptEngineFactory

        public NashornScriptEngineFactory​()
    • 方法详细信息

      • getEngineName

        public String getEngineName​()
        描述从接口ScriptEngineFactory复制
        返回ScriptEngine的全名。 例如,基于Mozilla Rhino Javascript引擎的实现可能会返回Rhino Mozilla Javascript Engine
        Specified by:
        getEngineName在接口 ScriptEngineFactory
        结果
        引擎实现的名称。
      • getExtensions

        public List<String> getExtensions​()
        说明从界面ScriptEngineFactory复制
        返回一个不可变的文件扩展名列表,它们通常标识以ScriptEngine支持的语言编写的脚本。 该阵列由ScriptEngineManager用于实现其getEngineByExtension方法。
        Specified by:
        getExtensions在接口 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的短名单,可以用来标识ScriptEngineScriptEngineManager 例如,基于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

        这些键中的值是由返回的字符串getEngineNamegetEngineVersiongetLanguageNamegetLanguageVersion用于第一四个键分别。 对于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 - 要执行的语句。 可能会返回值为getMethodCallSyntaxgetOutputStatement方法。
        结果
        该程序
      • 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 - 如果 classFilternull
        SecurityException - 如果安全经理的 checkPermission否认 RuntimePermission("nashorn.setConfig")
      • getScriptEngine

        public ScriptEngine getScriptEngine​(String... args)
        创建一个使用给定参数初始化的新脚本引擎。
        参数
        args - 参数数组传递给脚本引擎。
        结果
        新创建的脚本引擎。
        异常
        NullPointerException - 如果 argsnull
        SecurityException - 如果安全管理员的 checkPermission否认 RuntimePermission("nashorn.setConfig")
      • getScriptEngine

        public ScriptEngine getScriptEngine​(String[] args,
                                            ClassLoader appLoader)
        创建一个新的Script引擎,并使用给定的参数和给定的类加载器进行初始化。
        参数
        args - 参数数组传递给脚本引擎。
        appLoader - 类加载器用作脚本“app”类加载器。
        结果
        新创建的脚本引擎。
        异常
        NullPointerException - 如果 argsnull
        SecurityException - 如果安全管理员的 checkPermission否认 RuntimePermission("nashorn.setConfig")
      • getScriptEngine

        public ScriptEngine getScriptEngine​(String[] args,
                                            ClassLoader appLoader,
                                            ClassFilter classFilter)
        创建一个使用给定参数,类加载器和类过滤器初始化的新脚本引擎。
        参数
        args - 参数数组传递给脚本引擎。
        appLoader - 类加载器用作脚本“app”类加载器。
        classFilter - 类过滤器使用。
        结果
        新创建的脚本引擎。
        异常
        NullPointerException - 如果 argsclassFilternull
        SecurityException - 如果安全经理的 checkPermission否认 RuntimePermission("nashorn.setConfig")