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. Pascal 线段树 lazy-tag 模板

    先说下我的代码风格(很丑,勿喷) maxn表示最大空间的四倍 tree数组表示求和的线段树 delta表示增减的增量标记 sign表示覆盖的标记 delta,sign实际上都是lazy标志 pushd ...

  2. 练习一下linux中的list函数。

    所有的list函数见 include/linux/list.h 自己从 include/linux/list.h 拷贝了一些函数到自己的list.c中, 然后练习了一下. 没有别的目的,就是想熟练一下 ...

  3. saiku安装方法总结

    最近研究pentaho和saiku,在网上搜集了一些安装和配置的方法,亲测有效,在这分享总结一下方便日后使用. Saiku主要提供两种安装方式,独立运行和集成在Pentaho BI平台上,本文会简单介 ...

  4. 执行startx后Ubuntupassword正确进不去的问题

    今天在命令行里敲了 startx ,然后系统重新启动.输入password后,跳转到一下界面.之后又返回到登陆界面.一直这样循环输入password.进不去系统. 然后不得不用手机在网上查找解决的方法 ...

  5. 基于eclipse的mybatis映射代码自动生成的插件

    基于eclipse的mybatis映射代码自动生成的插件 分类: JAVA 数据库 工具相关2012-04-29 00:15 2157人阅读 评论(9) 收藏 举报 eclipsegeneratori ...

  6. UML的基本图(一)

     A class diagram shows a set of classes, interfaces, and collaborations and their relationships. T ...

  7. Nodejs解析HTML网页模块 jsdom

    工作需要抓取某些网页,所以今天试用下了node下的jsdom模块.同样功能的还有jquery jsdom https://npmjs.org/package/jsdom API很简单. jsdom.e ...

  8. GridView合并多行列值

    )                    {                        gvr.Cells[cellNum].RowSpan = rowSpanNum;               ...

  9. Git--廖雪峰的博客的学习笔记

    为了督促自己能看完这个网站的学习教程,边看边做了些简要的笔记,记录了常用命令,其实也就是自己打了些简单的命令,好多直接就粘贴过来了,也算是一个学习的证明吧,想按详细的教程,还是要去博主的园子学习啊地址 ...

  10. inline函数和一般的函数有什么不同

    1.比如: int g(int x) { return x + x; } int f() { return g(); } 这样f会调用g,然后g返回x + x给f,然后f继续把那个值返回给调用者. 如 ...