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的框架还是比较复杂的, 单是从文字上理解, ...
随机推荐
- 20145325张梓靖 《网络对抗技术》 Web基础
20145325张梓靖 <网络对抗技术> Web基础 实验内容 开启apahce,设计web前端HTML 设计web前端javascipt 设计web后端mysql 设计web后端php ...
- 如何自己烧制全文RSS(打造自己RSS源)
烧制RSS源 到Feed43注册一个账号,虽说不注册也能用,但是为了方便修改自己烧制的RSS,最好还是注册一个账号来管理 到主页点击Create new feed 输入网址点击reload 可以看到请 ...
- %lld 和 %I64d的区别
参考一个博客的链接:https://blog.csdn.net/thunders01/article/details/38879553
- Math.random 随机数方法
随机取数方法 Math.random() 表示0到1之间随机取一个数 <x< 小数 Math.random()* 表示0<x< parseInt(Math.random()*) ...
- Thread类的常用方法
String getName() 返回该线程的名称. void setName(String name) 改变线程名称,使之与参数 name 相同. int getPriority() 返回线程的优先 ...
- Hbase与Oracle比较(列式数据库与行式数据库)
Hbase与Oracle比较(列式数据库与行式数据库) 1 主要区别 Hbase适合大量插入同时又有读的情况 Hbase的瓶颈是硬盘传输速度,Oracle的瓶颈是硬盘寻道时间. Hbase本质上只 ...
- JAVA 上传文件到linux上并解压缩
package com.inborn.inshop.controller.mkt; import java.io.*; import ch.ethz.ssh2.ChannelCondition;imp ...
- 在WPF中调用另存为对话框
Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog(); dlg.FileName = "User ...
- Python 基础 Python是什么
1.Python 是一门高级的.面向对象的,解释性,脚本语言.
- JAVA怎样理解面向对象
一.对象 现实世界中,随处可见的一种事物就是对象,对象是事物存在的实体,如人类.书桌.计算机.高楼大厦等.人类解决问题的方式总是将复杂的事物简单化,于是就会思考这些对象都是由哪些部分组成的.通常都 ...