`
liboys
  • 浏览: 1348 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

tomcat下jsp中使用ant实时编译java文件

阅读更多
最近在改一个linux服务器下的jsp系统,使用的是tomcat系统。
因为jdk版本与开发环境windows下的版本不同,因此,采取直接上传java文件并在服务器里编译的方式。
但是,tomcat不像resin有自动编译java功能,于是想到了用ant,试了一晚上,总结出最简单的方法。

本人要实现的是:
1、服务器网站目录为:/var/www/html/hzylxiaolan/
2、只需要重新编译classes目录中的一个java文件,可自己修改为重新编译所有。

如下:

首先需要到apache的ant网站上下载相关的ant包,并放到系统的web-inf/lib目录中。
本人的网站中有以下的ant文件
ant-1.5.3.jar
antlr-2.7.5H3.jar
antlr.jar
ant-optional-1.5.3.jar
是否还需要其他文件,请下载ant安装后自已试一下 :)


配置一个ant的配置xml文件,如下:
文件名:/var/www/html/hzylxiaolan/jsp/fa_javac.xml
==========================================================
<?xml version="1.0"?>
<project default="compile" basedir=".">
<path id="lib">
  //jdk的lib目录,实际使用时去掉本注释
  <fileset dir="/opt/jdk1.5.0_07/lib/"><include name="**/*.jar"/></fileset>
  //网站的lib目录
  <fileset dir="/var/www/html/hzylxiaolan/WEB-INF/lib/"><include name="**/*.jar"/></fileset>
</path>
<target name="compile">
  //要重新编译的程序所在的目录,如果为classes,则编译该目录下的所有文件。
  //在本例中,仅编译本人指定的一个子目录下的程序
  <javac srcdir="/var/www/html/hzylxiaolan/WEB-INF/classes/myclass/djcard"
   //编译后输出的目录,设置到classes根目录,会自动输出到对应位置
    destdir="/var/www/html/hzylxiaolan/WEB-INF/classes/"
    //引用classes下的其他类
    classpath="/var/www/html/hzylxiaolan/WEB-INF/classes/"
    debug="on"
  >
  <classpath refid="lib"/>
  </javac>
</target>
</project>
========================================================================================

再编写一个执行的jsp程序,如下:
文件名:/var/www/html/hzylxiaolan/jsp/fa_javac.jsp
========================================================================================
<%@ page import="java.util.*,java.net.*,java.text.*,java.util.zip.*,java.io.*,org.apache.tools.ant.*"%>
<%@ page contentType="text/html;charset=gb2312"%>
<%
    out.println( "编译开始...<BR>" );
//xml描述
String buildFilePath = "/var/www/html/hzylxiaolan/jsp/fa_javac.xml";
//日志输出
String logFilePath = "/var/www/html/hzylxiaolan/jsp/fa_javac.log";
File buildFile = new File(buildFilePath);
Project project = new Project();
DefaultLogger consoleLogger = new DefaultLogger();
try {
    FileOutputStream fs = new FileOutputStream(logFilePath);
    PrintStream ps = new PrintStream(fs);
    consoleLogger.setErrorPrintStream(ps);
    consoleLogger.setOutputPrintStream(ps);
} catch (FileNotFoundException e1) {
  e1.printStackTrace();
}
consoleLogger.setMessageOutputLevel(Project.MSG_INFO);
project.addBuildListener(consoleLogger);
try {
     project.fireBuildStarted();
     project.init();
     ProjectHelper helper = ProjectHelper.getProjectHelper();
     helper.parse(project, buildFile);
     out.println("默认target:<BR>");
     out.println(project.getDefaultTarget()+"<BR>");  //默认的target是help
  project.executeTarget("compile");  //调用的任务,对应xml中指明的compile名字
  project.fireBuildFinished(null);
  out.println( "编译成功.<BR>" );
} catch (BuildException e) {
  project.fireBuildFinished(e);
  out.println( "编译失败.<BR>" );
}

%>
========================================================================================

运行 fa_javac.jsp程序。
会在页面输出编译结果,对于编译的结果,有两种途径输出,一是输出到fa_javac.log日志文件中,一是直接输出到控制台。
如果错误,可查看日志文件。
如果提示找不到什么 sun....Main什么编译主程序,可将jdk下的lib目录中的tools.jar文件,复制到网站 /WEB-INF/lib 目录中。



QQ: 86804
分享到:
评论

相关推荐

    把jsp编译打包成jar

    将工程中的jsp编译成servlet后打成一个jar包,并且自动生成web.xml中的servlet配置。

    完全免费的Java/jsp开发编辑工具FirstJava2

    对初学者来说,使用方法过于复杂,如果你编译200个java文件,编译速度太慢,需要好长时间. Eclipse和Jbuild编辑辅助方式,显示的内容太多了,眼都看花了. 当你使用FirstJava2你会发现,它速度很快,功能简单,管用,反应敏捷,...

    apache-tomcat-7.0.82

    在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码...

    ant1.9资源

    在本小节中,主要引导读者来看下Ant的常用任务及其使用举例。 1. copy任务 该任务主要用来对文件和目录的复制功能。举例如下: Eg1.复制单个文件: Eg2.对文件目录进行复制: Eg3. 将文件复制到另外的...

    Java项目开发与毕业设计指导

    安装JDK、配置环境变量,编译java源文件(可以用eclipse自动编译也可以手动命令行下编译),然后命令行下运行如下命令启动服务器端: java rmi.NetS 2000 (端口号为2000) 键入如下命令启动客户端: java...

    轻量级Java EE企业应用开发实战 源码 chapters 02

    安装完成后,将Tomcat安装路径的lib下的jsp-api.jar和servlet-api.jar两个JAR文件添加到CLASSPATH环境变量之后。 (3) 安装apache-ant-1.7.0。将下载的Ant压缩文件解压缩到任意路径,然后增加ANT_HOME环境变量,让...

    FirstJava2完全教材

    对初学者来说,使用方法过于复杂,如果你编译200个java文件,编译速度太慢,需要好长时间. Eclipse和Jbuild编辑辅助方式,显示的内容太多了,眼都看花了. 当你使用FirstJava2你会发现,它速度很快,功能简单,管用,反应敏捷,...

    轻量级Java EE企业应用开发实战 源码 chapters 01

    安装完成后,将Tomcat安装路径的lib下的jsp-api.jar和servlet-api.jar两个JAR文件添加到CLASSPATH环境变量之后。 (3) 安装apache-ant-1.7.0。将下载的Ant压缩文件解压缩到任意路径,然后增加ANT_HOME环境变量,让...

    轻量级Java EE企业应用开发实战 源码 chapters 10

    安装完成后,将Tomcat安装路径的lib下的jsp-api.jar和servlet-api.jar两个JAR文件添加到CLASSPATH环境变量之后。 (3) 安装apache-ant-1.7.0。将下载的Ant压缩文件解压缩到任意路径,然后增加ANT_HOME环境变量,让...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    6.3.6 在代码中使用Log4j 6.4 改进Log4j 6.5 小结 第七章 Ant使用指南 7.1 Ant介绍 7.1.1 Ant简介 7.1.2 为什么要使用Ant 7.2 建立Ant的开发环境 7.2.1 下载Ant 7.2.2 配置Ant 7.3 Ant的使用方法 7.3.1 Ant能完成的...

    tomcat6、7、8、9, maven3.5

    的Apache Tomcat 5.5.X支持相同的Servlet和JSP规范版本的的Apache Tomcat 5.0.x中 还有在许多领域显著变化引擎盖下,从而提高了性能,稳定性和总拥有成本。有关详细信息,请参阅Apache Tomcat 5.5 Changelog。 的...

    《程序天下:J2EE整合详解与典型案例》光盘源码

    6.3.6 在代码中使用Log4j 6.4 改进Log4j 6.5 小结 第七章 Ant使用指南 7.1 Ant介绍 7.1.1 Ant简介 7.1.2 为什么要使用Ant 7.2 建立Ant的开发环境 7.2.1 下载Ant 7.2.2 配置Ant 7.3 Ant的使用方法 7.3.1 Ant能完成的...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    6.3.6 在代码中使用Log4j 6.4 改进Log4j 6.5 小结 第七章 Ant使用指南 7.1 Ant介绍 7.1.1 Ant简介 7.1.2 为什么要使用Ant 7.2 建立Ant的开发环境 7.2.1 下载Ant 7.2.2 配置Ant 7.3 Ant的使用方法 7.3.1 Ant能完成的...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    6.3.6 在代码中使用Log4j 6.4 改进Log4j 6.5 小结 第七章 Ant使用指南 7.1 Ant介绍 7.1.1 Ant简介 7.1.2 为什么要使用Ant 7.2 建立Ant的开发环境 7.2.1 下载Ant 7.2.2 配置Ant 7.3 Ant的使用方法 7.3.1 Ant能完成的...

    Struts2.0_Hibernate3_spring2.0 实现用户注册

    Struts2.0_Hibernate3_spring2.0 部署Web应用请按如下步骤进行: ... ant compile -- 该命令用于编译应用。 5. 启动Tomcat服务器。 6. 系统的Login.jsp页面是登录页面,Regist.jsp页面是注册页面。

    struts2+spring整合登陆验证经典完整案例!

    期余JAR文件在struts2+spring整合登陆验证经典完整案例!(JAR)这个中,免积分... ant compile -- 该命令用于编译应用。 5. 启动Tomcat服务器。 6. 系统的Login.jsp页面是登录页面,Regist.jsp页面是注册页面。

    【JTHarness4_4_0】【需要用到的包】

    JT Harness引用了其他的开源包,并且对包的版本有要求,一定要使用对应的版本,否则可能会出现函数或类找不到的问题,导致编译不通过。下面的包我都会打包放在附件中,不用自己去下载。 引用的jar包 下载地址 说明 ...

    fckedit编辑器

    现在的web.xml文件没有标签了,应该直接在jsp文件中使用: 6. 映射: 上面文件中两个servlet的映射分别为:/editor/filemanager/browser/default/connectors/jsp/connector 和/editor/filemanager/upload/...

    iuhyiuhkjh908u0980

    使用脚本,将工程的所有.class文件(除了Junit的)进行instrument,然后直接覆盖tomcat/webapp中该工程的.class文件. 2.把instrument时候生成的cobertura.ser考到tomcat/bin下面. 3.启动tomcat(在Eclipse中启动),并通过...

    深入浅出Hibernate源码

    11, 在您的eclipse 中,导入各个目录下的.project文件,以建立工程.(工程名为step1,step2,step3,step4)。在工程的类路径配置中,使用上一步创建的用户库(step1-step3使用Hibernate2,step4使用hibernate3)。确保没有...

Global site tag (gtag.js) - Google Analytics