WEB开发网
开发学院软件开发Java 关于 Java Scripting API 您不知道的 5 件事,Jav... 阅读

关于 Java Scripting API 您不知道的 5 件事,Java 平台上更简单的脚本编写方法

 2010-09-15 00:00:00 来源:WEB开发网   
核心提示: importjava.io.*;importjavax.script.*;publicclassApp{publicstaticvoidmain(String[]args){try{ScriptEngineengine=newScriptEngineManager().getEngineByNa

import java.io.*; 
import javax.script.*; 
 
public class App 
{ 
  public static void main(String[] args) 
  { 
    try 
    { 
      ScriptEngine engine = 
        new ScriptEngineManager().getEngineByName("javascript"); 
      for (String arg : args) 
      { 
        FileReader fr = new FileReader(arg); 
        engine.eval(fr); 
      } 
    } 
    catch(IOException ioEx) 
    { 
      ioEx.printStackTrace(); 
    } 
    catch(ScriptException scrEx) 
    { 
      scrEx.printStackTrace(); 
    } 
  } 
}

eval() 方法也可以直接操作一个 String,所以这个脚本不一定必须是文件系统的一个文件 — 它可以来自于数据库、用户输入,或者甚至可以基于环境和用户操作在应用程序中生成。

4. 将 Java 对象绑定到脚本空间

仅仅调用一个脚本还不够:脚本通常会与 Java 环境中创建的对象进行交互。这时,Java 主机环境必须创建一些对象并将它们绑定,这样脚本就可以很容易找到和使用这些对象。这个过程是 ScriptContext 对象的任务,如清单 6 所示:

清单 6. 为脚本绑定对象

import java.io.*; 
import javax.script.*; 
 
public class App 
{ 
  public static void main(String[] args) 
  { 
    try 
    { 
      ScriptEngine engine = 
        new ScriptEngineManager().getEngineByName("javascript"); 
         
      for (String arg : args) 
      { 
        Bindings bindings = new SimpleBindings(); 
        bindings.put("author", new Person("Ted", "Neward", 39)); 
        bindings.put("title", "5 Things You Didn't Know"); 
         
        FileReader fr = new FileReader(arg); 
        engine.eval(fr, bindings); 
      } 
    } 
    catch(IOException ioEx) 
    { 
      ioEx.printStackTrace(); 
    } 
    catch(ScriptException scrEx) 
    { 
      scrEx.printStackTrace(); 
    } 
  } 
}

上一页  1 2 3 4 5  下一页

Tags:关于 Java Scripting

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接