jdk1.6 Scripting是做什么用的?

   我在jdk1.6中看到一个用在js文件中夹杂java类的demo,我也照着这个demo自己写了一个这样的js,结果的确可以执行。请问各位,这种技术有什么用呢?
测试类代码:
package com.ns.test;

import java.io.InputStream;
import java.io.InputStreamReader;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;

/**
 *	{@link ScriptEngineManager} 类和 {@link ScriptEngine} 
 *	使得用java来执行脚本语言成为可能
 *	这个测试类演示了一些简单操作
 */
class TestScriptEngine {
	public static void main(String[] args){
		ScriptEngineManager manager = new ScriptEngineManager();
		ScriptEngine engine = manager.getEngineByName("js");
		
		engine.put("engine", engine);
		
		try {
			eval(engine, "conc.js");
			eval(engine, "TestScriptEngine.js");
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	 private static void eval(ScriptEngine engine, String name)
     throws Exception {
	/*
	* This class is compiled into a jar file. The jar file
	* contains few scripts under /resources URL.
	*/
	InputStream is = TestScriptEngine.class.getResourceAsStream(name);
	// current script file name for better error messages
	engine.put(ScriptEngine.NAME, name);
	// evaluate the script in the InputStream
	engine.eval(new InputStreamReader(is));
	}
}

我写的测试TestScriptEngine.js:
var out = java.lang.System.out;
out.println("abc");
var str = java.lang.String;
str = ["abc","def","ghi"];
for(var i=0;i<str.length;i++){
	out.println(str[i]);
}
for(var s in str){
	out.println(s)
}

执行结果为:
abc
abc
def
ghi
0
1
2

附件中包含有TestScriptEngine.js和jdk demo中提供的conic.js(这个js中重写了很多java.lang.object的成员方法).

你可能感兴趣的:(JavaScript,java,sql,jdbc,脚本)