Java中如何评估或执行脚本文件?

本示例演示如何评估存储在文件中的脚本。我们知道该eval()方法也可以接受一个Reader对象,因此我们可以使用阅读脚本文件FileReader,并将其作为参数传递给的eval()方法以ScriptEngine进行进一步评估。

package org.nhooo.example.script;

import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.ScriptException;
import java.io.File;
import java.io.Reader;
import java.io.FileReader;
import java.io.FileNotFoundException;

public class EvalScriptFile {
    public static void main(String[] args) {
        // 获取ECMAScript / JavaScript ScriptEngine。
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("ECMAScript");

        try {
            // 创建一个指向我们的File对象的实例
            //脚本文件。创建一个FileReader以读取
            // 文件传递给ScriptEngine.eval()方法。
            //
            // 该文件需要与以下文件放在同一文件夹中
            //我们的课程,以便能够阅读它。我们可以定义
            // 文件的完整路径也使创建更容易
            // 读者可以找到它。
            File script = new File("helloworld.js");
            Reader reader = new FileReader(script);

            engine.eval(reader);
        } catch (FileNotFoundException | ScriptException e) {
            e.printStackTrace();
        }
    }
}