andy27367451 发表于 2017-1-11 08:46:40

使用org.apache.jasper.JspC编译jsp文件

  JspC可以通过jspc.setArgs(args);设置所需参数,和使用指令进行编译相同,
  使用指令编译范例:

java -cp jasper.jar;servlet-api.jar;Fcatalina.jar;F:\server\tomcat.6\bin\tomcat-juli.jar;ant.jar;jsp-api.jar;jasper-el.jar;el-api.jar;jstl.jar;standard.jar;jasper-el.jar;jasper-jdt.jar org.apache.jasper.JspC -uriroot ./temp -d temp temp.jsp
  也可以通过调用set方法设置参数

public class Test1 {
public StringjspcTest() {
String error="";
try {
JspC jspc = new JspC();
/*String[] arg0 = {"-uriroot", "E:/jspc", "-d", "d:/t",
"temp/temp.jsp" };
jspc.setArgs(arg0);*/
jspc.setUriroot("d:/jspc");//web应用的root目录
jspc.setOutputDir("d:/t");//.java文件和.class文件的输出目录
jspc.setJspFiles("temp/temp.jsp");//要编译的jsp
jspc.setCompile(true);//是否编译 false或不指定的话只生成.java文件
jspc.execute();
} catch (Exception e) {
error=e.toString();
}
return error;
}
public static void main(String args[]){
Test1 t=new Test1();
System.out.println(t.jspcTest());
}
}
  这里jar包都从tomcat下引用
  测试类编译必要jar包:
  D:/Tomcat5.5/common/lib/jasper-compiler.jar
  D:/Tomcat5.5/common/lib/jasper-runtime.jar
  jsp编译必要jar包,除此之外还需要jsp中引用类的jar:
  D:/Tomcat5.5/common/lib/commons-el.jar
D:/Tomcat5.5/common/lib/jasper-compiler.jar
D:/Tomcat5.5/bin/commons-logging-api-1.1.1.jar
D:/Tomcat5.5/common/lib/jsp-api.jar
D:/Tomcat5.5/common/lib/jasper-compiler-jdt.jar
D:/Tomcat5.5/common/lib/servlet-api.jar
D:/Tomcat5.5/common/lib/jasper-runtime.jar
D:/Tomcat5.5/server/lib/catalina-ant.jar
  如果在tomcat web环境下运行工程环境加入ant的jar就可以
页: [1]
查看完整版本: 使用org.apache.jasper.JspC编译jsp文件