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

环境:(1)jdk:jdk1.6.0_45  我下的是这个版本,只要是jdk1.6的就可以(1.7是编译不了的,反正我是不行,最后配置了多个1.6)jdk6下载地址

(2)ant:apache-ant-1.9.6 应该1.7以上的都可以  http://ant.apache.org/bindownload.cgi

(3)tomcat:apache-tomcat-7.0.65-src  这个可以在http://tomcat.apache.org/download-70.cgi  选择下载,拉到最下面有个Source Code Distributions

两个都是可以下载解压的。

(1)jdk的环境变量配置我就不多说了。如果有两个版本的jdk,可以重新配置,可以有系统环境变量path的顺序是重左到右的,找到了就不会再往下找。如果遇到java -version版本不对可以根据这个原理查找原因。

(2)ant环境配置,和jdk一样,这里也不多说。

(3)tomcat源码解压后,将apache-tomcat-7.0.65-src拷贝到你想要存放目录,E:\tomcatsource\apache-tomcat-7.0.65-src

    修改该目录下的build.properties.default文件的名字为build.properties,在build.properties文件配置base.path,这个是ant之后下载tomcat源码依赖包的存放位置。E:\tomcatsource\apache-tomcat-7.0.65-src\tomcatbasepath

注意:不是“\”,而是“/”,配置文件中是E:/tomcatsource/apache-tomcat-7.0.65-src/tomcatbasepath


都已经准备好了,可以开始ant 了。cmd进入E:\tomcatsource\apache-tomcat-7.0.65-src即tomcat源码的根目录,执行ant ide-eclipse

出现了这个错误,等了下再执行ant ide-eclipse,结果build 成功了。

原因我也不知道。总之现在好了,而且生成了.classpath和.project文件,就是通过这两个文件导入eclipse的。现在就将tomcat的源码导入eclipse中了。

如何导入eclipse我也不多说了,就和导入java工程一样。

导入后的展示效果是这样的。

导入之后工程可能会有红色感叹号或者是红色叉叉,因为tomcat还需要导入其他依赖包,jdk,junit的包,还有一些别的。

最后编辑后的结果是这样的ANT_HOME表示安装ant的根目录。TOMCAT_LIBS_BASE就是前面base.path目录。

上面这个是我已经编辑好了的。

填入name和路径,这里的path不是jar包的路径,依赖包的根目录,所以选择folder。

都编辑好后tomcat的目录是这样的,红叉没了。

直接运行org.apache.catalina.startup.Bootstrap 的main是不行的。会出现如下的警告信息

信息提示:在E:\tomcatsource\apache-tomcat-7.0.65-src\output\build\conf没有找到server.xml文件,因为他把E:\tomcatsource\apache-tomcat-7.0.65-src\output\build作为了tomcat的根目录。

我们右键Run as-->Run Configurations

在Arguments设置VM arguments 这里设置了Catalina.home的路径包含了/output/build,因为在该目录下的目录是空的,我们把他去掉。这时再运行,访问http://localhost:88080出现tomcat的首页,说明成功了。

tomcat的根目录下有个BUILDING.txt 绝对是个好东西。看了你就明白很多了。

eclipse 导入tomcat7源码的更多相关文章

  1. 【Tomcat】使用Eclipse运行Tomcat7源码

    1.搭建开发环境 a.下载好tomcat7源码包 b.安装好jdk7,及设置好环境变量 c.安装好ant,及设置好环境变量,用于预编译tocmat源码. d.以上步骤准备好我们就可以开始进入源码的预编 ...

  2. Eclipse导入Hadoop源码项目及编写Hadoop程序

    一 Eclipse导入Hadoop源码项目 基本步骤: 1)在Eclipse新建一个java项目[hadoop-1.2.1] 2)将Hadoop压缩包解压目录src下的core,hdfs,mapred ...

  3. eclipse导入Java源码

    eclipse导入Java源码 下载源码包(一般jdk都自带了, 我的没有) src.zip eclipse -> window -> preferences -> JAVA -&g ...

  4. Hadoop1.x目录结构及Eclipse导入Hadoop源码项目

    这是解压hadoop后,hadoop-1.2.1目录 各目录结构及说明: Eclipse导入Hadoop源码项目: 注意:如果没有ant的包可以去网上下,不是hadoop里面的. 然后如果通过以上还报 ...

  5. eclipse导入tomcat源码

    我的开发环境:windows7  64位 一.官网下载tomcat源码.在此奉上一站地址:http://archive.apache.org/dist/tomcat/: 二.编译源码生成.jar文件: ...

  6. Eclipse导入Elasticsearch源码

    Eclipse导入Elasticsearch源码的步骤, 基于Elasticsearch 6.2.2的源码版本. 1.安装JDK1.9 Elasticsearch 6.2.2需要JDK1.9编译,否则 ...

  7. Eclipse导入Zookeeper源码Version2017.11.3

    将Zookeeper源码导入Eclipse, Zookeeper源码需要使用ant构建后才能导入Eclipse, 和Solr的源码一样也是使用ant构建的, 大部分可以参考Eclipse导入Solr源 ...

  8. spring源码学习(一):eclipse导入spring源码

    前言 对于一门技术,我们最先是了解它(what),然后再熟练的使用它(how)以及何时用它(when),最后肯定要看透它(why).spring作为Java开发人员可以说是最熟悉不过的了,基本每个Ja ...

  9. Eclipse导入Solr源码Version5.5.3

    将Solr的5.5.3版本源码导入Eclipse, Solr源码需要使用ant构建后才能导入Eclipse. 1.JDK安装 Solr要求jdk1.7+: 请参考Windows下安装配置jdk 2.A ...

随机推荐

  1. ajaxFileUpload+struts2实现多文件上传(动态添加文件上传框)

    上篇文章http://blog.csdn.net/itmyhome1990/article/details/36396291介绍了ajaxfileupload实现多文件上传, 但只是固定的文件个数,如 ...

  2. [转]SQL Server中临时表与表变量的区别

    [转]http://blog.csdn.net/skyremember/archive/2009/03/05/3960687.aspx 我们在数据库中使用表的时候,经常会遇到两种使用表的方法,分别就是 ...

  3. C语言栈与调用惯例

    C语言栈与调用惯例 1.前言 最近在再看<程序员的自我修养>这本书,对程序的链接.装载与库有了更深入的认识.关于这本书的评价可以去豆瓣看看http://book.douban.com/su ...

  4. 如何使用开源库,吐在VS2013发布之前,顺便介绍下V2013的新特性"Bootstrap"

    如何使用开源库,吐在VS2013发布之前,顺便介绍下VS2013的新特性"Bootstrap" 刚看到Visual Studio 2013 Preview - ASP.NET, M ...

  5. STM8S TIM4 初始化设置

    #define TIM4_DIV1 (unsigned char)0 #define TIM4_DIV2 (unsigned char)1 #define TIM4_DIV4 (unsigned ch ...

  6. ASP.NET Core + Angular 2 Template for Visual Studio

    多个月以来,我和多个Github上的社区贡献者一起建立支持库.包,我们最终的目的是希望完成这样一个作为起点的模板,也就是基于把Typescript代码和Angular2宿主在ASP.NET Core项 ...

  7. go: GOPATH entry is relative; must be absolute path: "".

    安装:vscode-go出现以下提示: go: GOPATH entry is relative; must be absolute path: "".Run 'go help g ...

  8. c++内存对齐 转载

    转载自http://blog.csdn.net/chengonghao/article/details/51674166 例子举的特别好 很多文章大概都有像这样的结论: 1. 数据项只能存储在地址是数 ...

  9. ruby将mysql查询到的数据保存到excel

    require "win32ole" require 'pathname' require 'mysql2' excel = WIN32OLE.new('excel.applica ...

  10. Flexible 弹性盒子模型之CSS align-self 属性

    实例 居中对齐弹性对象元素内的某个项: #myBlueDiv { align-self:center; } 复制 效果预览 浏览器支持 表格中的数字表示支持该属性的第一个浏览器的版本号. 紧跟在 -w ...