当前位置: 首页 > news >正文

eclipse 导入tomcat7源码

导入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 绝对是个好东西。看了你就明白很多了。

转载于:https://www.cnblogs.com/hjy9420/p/5017583.html

相关文章:

  • 硬件黑客
  • Python生成器实现杨辉三角打印
  • jQuery获取表格第一列的值
  • linux 安装mysql
  • 100个vc小项目开发:二、一步一点设计音乐播放器 [I]
  • 升级Windows10后Apache服务器启动失败的解决方法
  • 记2个月来,我在Csdn 掀起的微软面试风暴
  • Bootstrap显示代码的三种效果
  • 经典算法研究系列:二、Dijkstra 算法初探
  • 神经网络(13)--具体实现:random initialization
  • 以软件开始生命周期来说明不同的测试的使用情况
  • SSH远程会话管理工具 - screen使用教程
  • canvas基础学习(三)
  • angular.equals()、angular.extend()、angular.foreach()、angular.fromJson()、angular.identity()等
  • S3C2440-RTC
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • css布局,左右固定中间自适应实现
  • Effective Java 笔记(一)
  • Java|序列化异常StreamCorruptedException的解决方法
  • Java的Interrupt与线程中断
  • js继承的实现方法
  • underscore源码剖析之整体架构
  • vue 个人积累(使用工具,组件)
  • webpack+react项目初体验——记录我的webpack环境配置
  • XForms - 更强大的Form
  • 高性能JavaScript阅读简记(三)
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 缓存与缓冲
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 我有几个粽子,和一个故事
  • 在Unity中实现一个简单的消息管理器
  • 【云吞铺子】性能抖动剖析(二)
  • 我们雇佣了一只大猴子...
  • ​Python 3 新特性:类型注解
  • ​决定德拉瓦州地区版图的关键历史事件
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • #Linux(Source Insight安装及工程建立)
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (C语言)fread与fwrite详解
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (编译到47%失败)to be deleted
  • (超详细)语音信号处理之特征提取
  • (附源码)计算机毕业设计ssm电影分享网站
  • (三)终结任务
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)编辑寄语:因为爱心,所以美丽
  • (转)视频码率,帧率和分辨率的联系与区别
  • ... 是什么 ?... 有什么用处?
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .bat批处理(五):遍历指定目录下资源文件并更新