编译运行 tomcat-8.5 源码
Ant 环境并于源码生成必要的 jar 包
下载二进制包:https://ant.apache.org/bindownload.cgi
- ANT_HOME C:\mySoftware\ant1.9
- PATH 中添加一条:%ANT_HOME%/bin
检查是否完成 Ant 环境配置:
cmd–>ant -version
前提 :jdk 环境已经准备好。
Tomcat 源码包导入
下载 tomcat 源码:https://tomcat.apache.org/download-80.cgi
tomcat-8.5.70
解压导入后使用 idea 打开根目录:
修改一下 build.properties.default 中的 base.path
ant 编译时会把需要的 jar 包放到这个路径下:
在 项目根目录下进入 cmd 命令行,执行 ant 命令:
- 在根目录会生成一个 output 目录,把里面
.\output\build
下的 lib 目录拷贝到项目的根目录下 - 添加其他需要的 jar 包到根目录下的 lib
整理晚的链接: 提取码: e221
配置 JVM 参数
-Dcatalina.home=E:\Projects\IdeaProjects\apache-tomcat-8.5.51-src
-Dcatalina.base=E:\Projects\IdeaProjects\apache-tomcat-8.5.51-src
-Djava.io.tmpdir=E:\Projects\IdeaProjects\apache-tomcat-8.5.51-src\temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=E:\Projects\IdeaProjects\apache-tomcat-8.5.51-src\conf\logging.properties
-Dfile.encoding=UTF-8
乱码问题:
问题原因:编码不一致,源码中很多代码写的指定的编码格式是:ISO_8859_1
解决:把项目设置成 UTF-8 编码,然后找对应乱码的出错的位置,使用下面的方法准换编码:
str= new String(str.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
-
org.apache.jasper.compiler.Localizer.java 中 getMessage 方法:
-
org.apache.tomcat.util.res.StringManager.java 中 getString 方法:
已配置好的项目地址: hubo-admin/apache-tomcat-8.5.51-src
运行结果
原文地址:https://blog.csdn.net/qq_33471737/article/details/120123990
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。