tomcat ----> 源码关联/编译/....
今天在搞Servlet时想看下tomcat Servlet-API.jar的源码,按照惯性思维用以往关联SSH2框架的源码的方式去做但是结果没有成功,尝试过换不同的文件夹,起初怀疑可能是路径太深关联不到,~~可能想太多了,无论怎样换就是不行。还有怀疑过可能是tomcat的版本问题,因为关联的版本是7.0.82的,可能有太新了,有冲突,所以呢在网上搜了一下找到7.0.55的src包,网址放在这里共享--->http://archive.apache.org/dist/tomcat/。结果还是不行。好了,继续百度,找到了线索,想要看到源码需要用到ant。
ant的下载链接如左---> http://ant.apache.org/bindownload.cgi。
安装方法:
1、解压apache-ant-1.10.1-bin.zip--->apache-ant-1.10.1-bin文件夹
2、把apache-ant-1.10.1-bin文件夹中的apache-ant-1.10.1文件夹拷贝到你想要放置的盘
3、配置环境变量:ANT_HOME D:\SoftInstall\apache-ant-1.10.1
在path中最后添加 ;%ANT_HOME%\bin
4、测试,打开cmd,在命令行中输入ant –version后按enter,成功的话显示ant的版本号Apache Ant(TM) version 1.10.1 compiled on February 2 2017
输入ant后按enter,显示 Buildfile: build.xml does not exist! Build failed
安装好ant后,参考了旺友们eclipse关联源码的文章,最终没有成功,特此用此文记录。
另解:直接在eclipse中建立以apache-tomcat-7.0.55-src命名的java工程,然后导入src文件夹的所有内容,把java文件夹和test文件夹右击选择Build path的use as source folder,然后报错,直接删除test文件夹,再新建一个src包,修改报错文件,截图如下:

ICompilationUnit.java文件添加如下的抽象方法:

CompilerOptions.java文件添加如下字符串:(本人用的是jdk 1.8.x)

运行一下java文件,tomcat可以启动。

2018-11-03 20:31:19
编译Tomcat源码
环境:jdk1.6.31,ant1.9.13,window7,Tomcat7.0.91
注意ant.apache.org官网上ant的版本和jdk版本的说明,如果使用1.10.x去编译,而且jdk是6,那么会出现“Unsupported major.minor version 52.0” 的错误。

再注意当使用jdk1.8去编译tomcat7.0.91源码时会提示错误:build-tomcat-dbcp出错,最终build fail。
所以选择了组合jdk1.6.31+ant1.9.13+Tomcat7.0.91。最后编译成功。

所以选择安装两个jdk和两个ant。因为之前安装了jdk1.8_172和ant1.10.x。
安装多个版本的软件时,每个版本的软件设置为不同的环境变量,比如JAVA_HOME1和JAVA_HOME2,然后通过一个JAVA_HOME环境变量来控制选择哪个版本的软件,当需要启动第一个软件时,我们可以设置环境变量成AVA_HOME = %AVA_HOME1%。跟电路中的切换开关的原理一样,切换开关可以控制哪条路有电流通过。
编译结果:跟下载的Tomcat是一样的目录,除了work目录以下部分。


启动Tomcat???
tomcat ----> 源码关联/编译/....的更多相关文章
- Tomcat源码分析一:编译Tomcat源码
Tomcat源码分析一:编译Tomcat源码 1 内容介绍 在之前的<Servlet与Tomcat运行示例>一文中,给大家带来如何在Tomcat中部署Servlet应用的相关步骤,本文将就 ...
- Tomcat源码组织结构
Tomcat 源码组织结构 目录结构 这里所介绍的目录结构,是使用CATALINA-BASE变量定义的路径,如果没有通过配置多个CATALINA-BASE目录来使用多实例,则CATALINA-BASE ...
- Tomcat 源码分析(转)
本文转自:http://blog.csdn.net/haitao111313/article/category/1179996 Tomcat源码分析(一)--服务启动 1. Tomcat主要有两个组件 ...
- eclipse导入tomcat源码
我的开发环境:windows7 64位 一.官网下载tomcat源码.在此奉上一站地址:http://archive.apache.org/dist/tomcat/: 二.编译源码生成.jar文件: ...
- Tomcat源码导入eclipse的步骤
Tomcat源码导入eclipse 一.下载源码 1. 进入Apache 官网:http://tomcat.apache.org/ 2. 在左边侧选择要下载的源码的版本. 3. 或者直接通过Ar ...
- 75篇关于Tomcat源码和机制的文章
75篇关于Tomcat源码和机制的文章 标签: tomcat源码机制 2016-12-30 16:00 10083人阅读 评论(1) 收藏 举报 分类: tomcat内核(82) 版权声明:本文为 ...
- Eclipse导入Tomcat源码(转)
想要研究下Tomcat的体系结构或者源码,最好将Tomcat的源码导入到ide中,编写实例进行代码跟踪(debug). 这里参考了网上一些资料,将自己操作过程记个流水账. 准备: 1.Tomcat源码 ...
- 探秘Tomcat(一)——Myeclipse中导入Tomcat源码
前言:有的时候自己不知道自己是井底之蛙,这并没有什么可怕的,因为你只要蜷缩在方寸之间的井里,无数次的生活轨迹无非最终归结还是一个圆形:但是可怕的是有一天你不得不从井里跳出来生活,需要重新审视井以外的生 ...
- Tomcat源码分析
前言: 本文是我阅读了TOMCAT源码后的一些心得. 主要是讲解TOMCAT的系统框架, 以及启动流程.若有错漏之处,敬请批评指教! 建议: 毕竟TOMCAT的框架还是比较复杂的, 单是从文字上理解, ...
随机推荐
- python ---12 生成器 推导式
一.生成器 函数中有yield 的就是生成器函数(替代了return) 本质就是迭代器 一个一个的创建对象 节省内存 1.创建生成器 最后以yield结束 1. 通过⽣成器函数 2. ...
- B/S交互过程及tomcat体系结构
浏览器与服务器交互过程: 1.浏览器根据主机名,如www.baidu.com,去操作系统的hosts文件中查找主机名对应的ip地址. 2.如果查找不到,则会去互联网上的dns服务器上查找主机名对应的i ...
- shell编程(四)之循环控制语句(for,while,until,break,continue,case)
for循环 语法:for NAME in LIST; do 循环体 done 列表生成方式:1.整数列表 {start...end} $(seq,[start [step]] end)2.glob / ...
- bzoj1497 [NOI2006]最大获利 最大权闭合子图
链接 https://www.lydsy.com/JudgeOnline/problem.php?id=1497 思路 最大权闭合子图的裸题 一开始知道是这个最大权闭合子图(虽然我不知道名字),但是我 ...
- CentOS7.2 安装Docker
Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker . 通过 uname -r 命令查看你当前的内核版本 [roo ...
- 【htop】Linux CentOS 6.5下安装htop进程管理工具
一.Htop的使用简介 This is htop, an interactive process viewer for Linux. It is a text-mode application (fo ...
- 【Hadoop 分布式部署 二:分布式环境预备工作(主机名 IP地址等设置)】
1.首先使用工具连接上 这三台虚拟主机 2.配置主机名 切换到 root 用户 第一种方式 可以使用命令 hostname [要更改的主机名] 但是这种更改主机名的方式 ...
- zepto 入门
2017-03-17 文章来源:http://www.cnblogs.com/daysme zepto 简介 jq虽然有一些衍生的插件可用在移动端上,但它有点大. click 有,但有问题 onmou ...
- CSS-形变 动画 表格
一.形变 /*1.形变参考点: 三轴交界点*/ transform-origin: x轴坐标 y轴坐标; /*2.旋转 rotate deg*/ transform: rotate(720deg) ...
- [学习一个] Matlab GUI 学习笔记 Ⅰ
Matlab GUI 学习笔记 Ⅰ 1. Foreword Matlab 是严格意义上的编程语言吗?曾经有人告诉我他是通过 Matlab 学会了面对对象编程,我是不信的,但这依然不妨碍它在特殊领域的强 ...