1.搭建开发环境

a.下载好tomcat7源码包

b.安装好jdk7,及设置好环境变量

c.安装好ant,及设置好环境变量,用于预编译tocmat源码。

d.以上步骤准备好我们就可以开始进入源码的预编译了。

2.使用ant预编译tomcat7源码

a.进入tomcat7源码解压路径,修改“build.properties.default”文件名,去掉后面的".default"。

b.cmd进入tomcat7源码的解压路径,然后键入“ant”命令,ant会自动下载编译tomcat7源码的依赖包,如果用户不设置,系统默认下载的包路径会是当前盘符下面的“\usr\share\java”里面,

如果想设置自定义路劲的话,可以打开刚刚修改完成的“build.properties"配置文件,搜索“base.path”属性,设置为比如“base.path=e:/tomcat/lib”,然后cmd运行“ant”命令即可。

c.如果运行完成之后能在解压路径,看到有”output\build“文件夹,而且里面有生成了你熟悉的tomcat相关文件夹的话就算成功了。

3.使用Eclipse运行tomcat7源码

a.进入Eclipse新建一个普通java项目,比如这里叫做“tomcat7”。

b.新建完成之后,将tomcat7解压路径下面的“java"和“test"文件夹复制到刚刚新建好的tomcat7项目下面。

c.设置刚刚的“java”和“test”文件夹为源文件夹,右击项目-->Properties-->Java Build Path-->Source-->Add Folder,然后勾选上“java"和”test"两个文件夹。确定即可。

d.设置完成源文件夹之后,会看到两个源文件夹上面都有红色的小x,这是因为没导入需要的包,这里需要导入的包有:

ant.jar、jaxrpc.jar、org.eclipse.jdt.core_3.8.3.v20130121-145325.jar、wsdl4j-1.5.1.jar、junit.jar,前面四个jar包可以自行导入,最后的junit.jar可以直接在eclipse里面add external jars里面选择junit进行导入。

e.到这里需要搭建的都已经完成了,现在可以右击项目,run as --> run configurations ,然后main class 填写“org.apache.catalina.startup.Bootstrap”,然后在隔壁的“Arguments”里面的VM Arguments 里面填写

“-Dcatalina.home="E:/project/open/tomcat-TOMCAT_7_0_42/output/build",这里需要注意,这个具体路径根据自己的实际改写,我这里刚刚解压的路劲为e盘的这个路径所以使用了这个。

f.最后点击“RUN"运行项目,运行之后根据提示可以看到缺少了”conf”和“lib"文件夹,我们可以自行手动将tomcat的”conf”和“lib"拷到项目下面,然后再重复刚刚的步骤e。

g.这时候我们可以看到Eclipse的控制台里面已经输出了我们非常熟悉的tomcat启动完成的文字,然后我们在浏览器输入“localhost:8080"就可以看到tomcat的主页面了。

4.到了这里我们已经可以在Eclipse里面对tomcat的源码进行一番研究了。

【Tomcat】使用Eclipse运行Tomcat7源码的更多相关文章

  1. Eclipse运行Tomcat7源码

    1. 各环境版本: jdk1.6.0_45 (亲测jdk1.7.0_07会有问题,不要用1.7版本的) apache-ant-1.9.4 apache-tomcat-7.0.61-src 2. 安装a ...

  2. eclipse 导入tomcat7源码

    导入tomcat的源码其实说简单也不简单,说不简单也简单,主要还是环境问题,中间花费了我很多时间,网上找了很多都没什么用,参考一些文章,然后自己慢慢摸索出来的. 环境:(1)jdk:jdk1.6.0_ ...

  3. Eclipse中搭建Apache Tomcat7源码调试环境

    第一步:获取Apache Tomcat7源码,读者可以从Apache 官方网站获取,官方下载地址: http://tomcat.apache.org/download-70.cgi 注意选择Sourc ...

  4. 深入理解Tomcat系列之二:源码调试环境搭建(转)

    前言 最近对Tomcat的源码比较感兴趣,于是折腾了一番.要调试源码首先需要搭建环境,由于参考了几篇帖子发现都不怎么靠谱,最后还是折腾出来了,然而却花了足足一天的时间去搭建这个环境.发现都不是帖子的问 ...

  5. Tomcat7源码环境搭建

    一.下载Tomcat7源码 从官网上下载Tomcat源码,   http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.70/src/apache-t ...

  6. [tomcat7源码学习]初始化之catalina.home和catalina.base(转)

    我们在代码中为了获取某个配置文件路径下的文件经常会这么写 String tomcatPath = System.getProperty("catalina.home") + &qu ...

  7. Eclipse与Android源码中ProGuard工具的使用

    由于工作需要,这两天和同事在研究android下面的ProGuard工具的使用,通过查看android官网对该工具的介绍以及网络上其它相关资料,再加上自己的亲手实践,算是有了一个基本了解.下面将自己的 ...

  8. eclipse查看jdk源码,及反编译查看

    jdk中的包: dt.jar是关于运行环境的类库,主要是swing的包 tools.jar是关于一些工具的类库 rt.jar包含了jdk的基础类库,也就是你在java doc里面看到的所有的类的cla ...

  9. 框架源码系列五:学习源码的方法(学习源码的目的、 学习源码的方法、Eclipse里面查看源码的常用快捷键和方法)

    一. 学习源码的目的 1. 为了扩展和调优:掌握框架的工作流程和原理 2. 为了提升自己的编程技能:学习他人的设计思想.编程技巧 二. 学习源码的方法 方法一: 1)掌握研究的对象和研究对象的核心概念 ...

随机推荐

  1. 供应类型与计划分类一致性检查(INV)

    应用 Oracle Inventory 层 Level Function 函数名 Funcgtion Name CUXINVIMM 表单名 Form Name CUXINVIMM 说明 Descrip ...

  2. 项目关联不上开源项目(library)

    首先是add library的时候重新打开始始终显示关联错误,在reference中出现一个红叉,无论如何都解决不了,remove后重新添加也会有这个问题,Eclipse也没有任何出错提示. 最后在h ...

  3. (12)Visual Studio 2012如何透过电子邮件部署Xamarin.Android App

    原文 Visual Studio 2012如何透过电子邮件部署Xamarin.Android App Android App在部署到实机的时候不像iOS的App限制你一定要使用向Apple申请的开发者 ...

  4. java实现二维码生成的几个方法

    1: 使用SwetakeQRCode在Java项目中生成二维码 http://swetake.com/qr/ 下载地址 或着http://sourceforge.jp/projects/qrcode/ ...

  5. AIDL 发生异常的原因 Android java.lang.SecurityException: Binder invocation to an incorrect interface

    我建立了两个project.一个是activity 的 ,一个是service 的. 在进行两个project通信时,应该有以下几点注意: 1.在activity project中引入service ...

  6. golang之interface(接口)与 reflect 机制

    一.概述 什么是interface,简单的说,interface是一组method的组合,通过interface来定义对象的一组行为: interface类型定义了一组方法,如果某个对象实现了某个接口 ...

  7. c/c++中与字符串处理相关的函数

    void *memccpy (void *dest, const void *src, int c, size_t n); 从src所指向的对象复制n个字符到dest所指向的对象中.如果复制过程中遇到 ...

  8. C#深复制和浅复制

    本文在于巩固基础 我们来看看什么是深复制.浅复制: C#中对于数据的复制机制虽然简单但是容易让人误解.C#数据类型大体分为值类型(value type)与引用类型(reference type).对于 ...

  9. 一个解析url参数方法

    function getRequestParameter(a) { var b = document.location.search || document.location.hash; if (a ...

  10. AngularJS ng-class用法

    mark from https://my.oschina.net/gejiawen0913/blog/188547 ng-class是AngularJS预设的一个指令,用于动态自定义dom元素的css ...