pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>janino</groupId>
<artifactId>com.zsj.janino</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>janino</artifactId>
<version>2.7.8</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.6</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
</dependencies>
</project>
/**
*
* @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);
}
}