tomcat8.5.15源码编译运行

2024-01-01 20:32

本文主要是介绍tomcat8.5.15源码编译运行,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

下载Ant


打开http://ant.apache.org/bindownload.cgi


下载Ant http://apache.fayea.com//ant/binaries/apache-ant-1.10.1-bin.zip


解压Ant到目录
D:\soft\apache-ant-1.10.1


配置Ant系统变量(注意不是用户变量)
ANT_HOME D:\soft\apache-ant-1.10.1


配置环境变量Path(注意不是用户变量)
追加 ;%ANT_HOME%\bin


检验Ant变量是否正常
打开CMD,输入  ant -version   输出 Apache Ant(TM) version 1.10.1 compiled on February 2 2017  表示Ant系统环境正常


打开http://tomcat.apache.org/download-80.cgi


下载tomcat源码http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.15/src/apache-tomcat-8.5.15-src.zip


解压源码到目录D:\soft\apache-tomcat-8.5.15-src


cd D:\soft\apache-tomcat-8.5.15-src


编辑build.properties.default
base.path=${user.home}/tomcat-build-libs
改为
base.path=D:\soft\apache-tomcat-8.5.15-src


编译源码
d:
cd D:\soft\apache-tomcat-8.5.15-src
输入命令   ant


等待自动下载依赖jar包和编译,大概1分钟左右,看网速和电脑硬件配置


eclipse新建java工程tomcat8.5.15


选中工程名,右键工程名tomcat8.5.15,import > file system 选择源码路径,确定


输出src文件夹,在java项目中选择java和test文件夹,右键 build path > use as source folder 


在java项目下新建 lib(用于存放其他依赖jar包)文件夹  http://pan.baidu.com/s/1dDz1FMD 


复制jar包到lib目录并引用D:\soft\apache-tomcat-8.5.15-src\output\build\lib


依赖jar包引用之后,注释红色的类


修改D:\workspace\tomcat8.5.15\output\build\conf\tomcat-users.xml
  <role rolename="tomcat"/>
  <role rolename="manager-gui"/>
  <role rolename="admin-gui"/>
  <role rolename="admin-script"/>
  <user username="tomcat" password="tomcat" roles="tomcat,manager-gui,admin-gui,admin-script"/>


找到org.apache.catalina.startup.Bootstrap.java, 然后 Debug as Java Application -> Debug Configuartions...


输入vm参数
-Dcatalina.home="D:\workspace\tomcat8.5.15\output\build"
-server
-Xms512m
-Xmx512m


访问 http://localhost:8080

这篇关于tomcat8.5.15源码编译运行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/560435

相关文章

Android实现定时任务的几种方式汇总(附源码)

《Android实现定时任务的几种方式汇总(附源码)》在Android应用中,定时任务(ScheduledTask)的需求几乎无处不在:从定时刷新数据、定时备份、定时推送通知,到夜间静默下载、循环执行... 目录一、项目介绍1. 背景与意义二、相关基础知识与系统约束三、方案一:Handler.postDel

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见

Python如何精准判断某个进程是否在运行

《Python如何精准判断某个进程是否在运行》这篇文章主要为大家详细介绍了Python如何精准判断某个进程是否在运行,本文为大家整理了3种方法并进行了对比,有需要的小伙伴可以跟随小编一起学习一下... 目录一、为什么需要判断进程是否存在二、方法1:用psutil库(推荐)三、方法2:用os.system调用

Java 正则表达式URL 匹配与源码全解析

《Java正则表达式URL匹配与源码全解析》在Web应用开发中,我们经常需要对URL进行格式验证,今天我们结合Java的Pattern和Matcher类,深入理解正则表达式在实际应用中... 目录1.正则表达式分解:2. 添加域名匹配 (2)3. 添加路径和查询参数匹配 (3) 4. 最终优化版本5.设计思

Python运行中频繁出现Restart提示的解决办法

《Python运行中频繁出现Restart提示的解决办法》在编程的世界里,遇到各种奇怪的问题是家常便饭,但是,当你的Python程序在运行过程中频繁出现“Restart”提示时,这可能不仅仅是令人头疼... 目录问题描述代码示例无限循环递归调用内存泄漏解决方案1. 检查代码逻辑无限循环递归调用内存泄漏2.

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

Java终止正在运行的线程的三种方法

《Java终止正在运行的线程的三种方法》停止一个线程意味着在任务处理完任务之前停掉正在做的操作,也就是放弃当前的操作,停止一个线程可以用Thread.stop()方法,但最好不要用它,本文给大家介绍了... 目录前言1. 停止不了的线程2. 判断线程是否停止状态3. 能停止的线程–异常法4. 在沉睡中停止5