java脚本计算janino实战

pom.xml

 

 


  4.0.0
  janino
  com.zsj.janino
  0.0.1-SNAPSHOT
 
      
        
            org.codehaus.janino
            janino
            2.7.8
        

        
            org.apache.commons
            commons-lang3
            3.6
        

        
            commons-io
            commons-io
            2.4
        

        


        
 

 

/**   
 * 
 * @Title: Student.java 
 * @Description: TODO
 * @date: 2018年11月21日 上午9:52:01 
 * @version: V1.0   
 */
package test.janino.demo;

/**
 * @ClassName: Student
 * @Description: TODO
 * @date: 2018年11月21日 上午9:52:01
 */
public class Student {
    private String name;
    private String grade;
 
    public Student(String name, String grade) {
        super();
        this.name = name;
        this.grade = grade;
    }

    public boolean exam() {
        System.out.println(name + "开始考试了");
        return false;
    }
    public void gra() {
        System.out.println(name+ "上"+grade );
    }
}
 

/**   
 * 
 * @Title: ScriptEvaluatorTest.java 
 * @date: 2018年9月26日 下午4:35:41 
 * @version: V1.0   
 */
package test.janino;

import org.codehaus.commons.compiler.IScriptEvaluator;
import org.codehaus.janino.ScriptEvaluator;

/**
 * @ClassName: ScriptEvaluatorTest
 * @date: 2018年9月26日 下午4:35:41
 */
public class ScriptEvaluatorTest {
    public static void main(String[] args) throws Exception {
        IScriptEvaluator se = new ScriptEvaluator();
        se.setReturnType(boolean.class);
        se.cook("import test.janino.demo.Student; "
                + "Student stu = new Student(\"lucy\", \"三年级\");\r\n" + 
                "     return    stu.exam();");//用于验证是否源码是否有语法错误
         
        Object res = se.evaluate(new Object[]{});//开始计算
        System.out.println("res = " + res);
    }
}
 

 

java脚本计算janino实战_第1张图片

你可能感兴趣的:(java基础)