本示例演示如何评估存储在文件中的脚本。我们知道该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(); } } }