zoukankan      html  css  js  c++  java
  • Java执行javascript

    package com.byd.mes.util.script;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import javax.script.Invocable;
    import javax.script.ScriptEngine;
    import javax.script.ScriptEngineManager;
    
    import sun.org.mozilla.javascript.internal.NativeObject;
    
    public class ScriptUtils {
    	private static final ScriptEngineManager manager = new ScriptEngineManager();
    	private Map<String,Callback> custom = new HashMap<String,Callback>();
    	
    	public interface Callback{
    		void callBack(String script);
    	}
    	
    	private Map<String,Callback> conf = new HashMap<String,Callback>();
    	{
    		conf.put("testing", new ScriptUtils.Callback(){
    			@Override
    			public void callBack(String script) {
    				ScriptEngine engine = manager.getEngineByName("javascript");
    				try {
    					engine.eval(script);
    					Invocable invocableEngine = (Invocable)engine;
    					NativeObject obj = (NativeObject) invocableEngine.invokeFunction("testing", 1);			
    					System.out.println(obj.get("nextOperation", null));
    				} catch (Exception e) {
    					throw new RuntimeException("执行Script脚本失败[function:testing]",e);
    				}
    				
    			}});
    	}
    	
    	public static void testing(String script){
    		
    	}
    
    	public void setCustom(Map<String,Callback> custom) {
    		this.custom = custom;
    		this.conf.putAll(custom);
    	}
    
    	public Map<String,Callback> getCustom() {
    		return custom;
    	}
    }
    
  • 相关阅读:
    实验五
    实验一
    实验四
    实验三
    实验8 SQLite数据库操作
    实验7 BindService模拟通信
    实验6 在应用程序中播放音频和视频
    实验5 数独游戏界面设计
    实验4 颜色、字符串资源的使用
    实验五 存储管理实验
  • 原文地址:https://www.cnblogs.com/qq1988627/p/6606886.html
Copyright © 2011-2022 走看看