JAVA调用javascript

package com.huawei.galaxy.xml2gui.scriptParser;

import java.io.FileReader;

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

/**
 * 解析JavaScript的类
 *
 */
public class JavaSriptParser {
	
	private Invocable invockeObject;
	private ScriptEngine engine;
	
	
	/**
	 * 初始化解析器
	 * @param scriptPath
	 */
	public JavaSriptParser(String scriptPath) {
		ScriptEngineManager factory = new ScriptEngineManager();
		// 构造脚本引擎
		engine = factory.getEngineByName("JavaScript");
		try {
			engine.eval(new FileReader(scriptPath));
			invockeObject = (Invocable) engine;
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 设置全局变量
	 * @param variableName
	 * @param value
	 */
	public void setGlobalValue(String variableName, Object value)
	{
		engine.put(variableName, value);
	}
	
	/**
	 * 调用方法
	 * @param method 参数名称
	 * @param parameter 参数对象
	 * @return
	 */
	public Object invokeMethod(String method, Object[] parameter)
	{
		try {
			Object object = invockeObject.invokeFunction(method, parameter);
			return object;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

}

你可能感兴趣的:(JavaScript)