模块  java.scripting
软件包  javax.script

Interface ScriptEngineFactory

    • 方法详细信息

      • 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的不可变短名称列表,可用于标识ScriptEngineScriptEngineManager 例如,基于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

        这些键中的值是由返回的字符串getEngineNamegetEngineVersiongetLanguageNamegetLanguageVersion用于第一四个键分别。 对于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 - 要执行的语句。 可能是对getMethodCallSyntaxgetOutputStatement方法的调用的返回值。
        结果
        该程序
        异常
        NullPointerException - 如果 statements数组或其任何元素为null
      • getScriptEngine

        ScriptEngine getScriptEngine()
        返回与此ScriptEngineFactory关联的ScriptEngine的实例。 通常返回一个新的ScriptEngine,但实现可以汇集,共享或重用引擎。
        结果
        一个新的 ScriptEngine实例。