今天在搞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 ----> 源码关联/编译/....的更多相关文章

  1. Tomcat源码分析一:编译Tomcat源码

    Tomcat源码分析一:编译Tomcat源码 1 内容介绍 在之前的<Servlet与Tomcat运行示例>一文中,给大家带来如何在Tomcat中部署Servlet应用的相关步骤,本文将就 ...

  2. Tomcat源码组织结构

    Tomcat 源码组织结构 目录结构 这里所介绍的目录结构,是使用CATALINA-BASE变量定义的路径,如果没有通过配置多个CATALINA-BASE目录来使用多实例,则CATALINA-BASE ...

  3. Tomcat 源码分析(转)

    本文转自:http://blog.csdn.net/haitao111313/article/category/1179996 Tomcat源码分析(一)--服务启动 1. Tomcat主要有两个组件 ...

  4. eclipse导入tomcat源码

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

  5. Tomcat源码导入eclipse的步骤

    Tomcat源码导入eclipse 一.下载源码 1.  进入Apache 官网:http://tomcat.apache.org/ 2.  在左边侧选择要下载的源码的版本. 3.  或者直接通过Ar ...

  6. 75篇关于Tomcat源码和机制的文章

    75篇关于Tomcat源码和机制的文章 标签: tomcat源码机制 2016-12-30 16:00 10083人阅读 评论(1) 收藏 举报  分类: tomcat内核(82)  版权声明:本文为 ...

  7. Eclipse导入Tomcat源码(转)

    想要研究下Tomcat的体系结构或者源码,最好将Tomcat的源码导入到ide中,编写实例进行代码跟踪(debug). 这里参考了网上一些资料,将自己操作过程记个流水账. 准备: 1.Tomcat源码 ...

  8. 探秘Tomcat(一)——Myeclipse中导入Tomcat源码

    前言:有的时候自己不知道自己是井底之蛙,这并没有什么可怕的,因为你只要蜷缩在方寸之间的井里,无数次的生活轨迹无非最终归结还是一个圆形:但是可怕的是有一天你不得不从井里跳出来生活,需要重新审视井以外的生 ...

  9. Tomcat源码分析

    前言: 本文是我阅读了TOMCAT源码后的一些心得. 主要是讲解TOMCAT的系统框架, 以及启动流程.若有错漏之处,敬请批评指教! 建议: 毕竟TOMCAT的框架还是比较复杂的, 单是从文字上理解, ...

随机推荐

  1. tftp 传输文件

    tftp 服务方便文件传输,但是没有理清的话,容易传输错误. -g 表示下载文件 (get) -p 表示上传文件 (put)-l 表示本地文件名 (local file) -r 表示远程主机的文件名 ...

  2. bzoj 2820 YY的GCD - 莫比乌斯反演 - 线性筛

    Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对kAc这种 傻×必 ...

  3. topcoder srm 335 div1

    problem1 link 直接模拟即可. import java.util.*; import java.math.*; import static java.lang.Math.*; public ...

  4. [翻译]使用VH和VW实现真正的流体排版

    前言 不像响应式布局,通过media query,设置几个变化点来适配,流体排版通过调整大小,适配所有设备宽度.这个方法可以使我们开发的网页,在几乎所有屏幕尺寸上都可以使用.但出于一些原因,它的使用率 ...

  5. 从0开始安装fedora23的笔记-- 以及使用fedora的常规问题-2

    在shell中, 你是可以连续输入多个语句的, 中间用分号; 连接 也可以把这些多个语句放到一个函数中, 函数的话,便于多次引用. 而且 "封装" 为函数后, 可以用set查看到这 ...

  6. 【做题】TCSRM591 Div1 500 PyramidSequences——数形结合&思维

    题意:定义高度为\(x\)的金字塔数列为周期为\(2x-2\)的无限数列.它的每一个周期都是形如\(1,2,...,x-1,x,x-1,...,2\)的形式.记高度为\(x\)的金字塔数列第\(i\) ...

  7. pgAdmin的数据导入之CSV

    在向数据库批量导入数据时,可以参考此过程 1.对于现有的Excel文件,首先应另存为 .csv文件,记住分割符(逗号分割),在后边导入用到. 2.用记事本打开保存后的csv文件,以utf-8格式另存为 ...

  8. Hive command

    hive常用命令 Hadoop Hive概念学习系列之hive里的分区(九) DOC hive分区(partition)简介 Hive分区(静态分区+动态分区) Hive分区.分桶操作及其比较 hiv ...

  9. HDU 6249 Alice’s Stamps(dp)

    http://acm.hdu.edu.cn/showproblem.php?pid=6249 题意: 给出n个区间,求选k个区间的最大区间并. 思路: 可能存在左端点相同的多个区间,那么此时我们肯定选 ...

  10. java用毫秒数做日期计算的一个踩坑记录

    错误示例: Date today = new Date(); Date nextMonth = new Date(today.getTime() + 30* 1000*60*60*24); print ...