因工作原因,需要从根本上优化tomcat的配置,故准备从源码入手,看看可以做哪些工作。

1. tomcat下载

tomcat最新的版本为9,下载源码的方式有3种:

1/ 官方网站 https://tomcat.apache.org/download-90.cgi,下载如下zip或者tar.gz解压,最新的release版本为9.0.22

2/github

  gitclone https://github.com/apache/tomcat.git 或者下载压缩包,gitclone得到tomcat目录

压缩包默认得到tomcat-master目录,如下图所示

3/svn

  https://svn.apache.org/repos/asf/tomcat/trunk/

2. tomcat的编译

  准备工作

C:\Users\86137>java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b15, mixed mode)C:\Users\86137>ant -version
Apache Ant(TM) version 1.9.14 compiled on March 12 2019

  编译命令

cd ${tomcat.source}
ant

或者eclipse支持

cd ${tomcat.source}
ant ide-eclipse

3.导入ide(eclipse为例)

  准备工作

  增加两个classpath变量

导入

  File->Import->General->Existing Projects into Workspace->选择Tomcat源码的根目录,单击完成即可导入。
  导入完成之后,项目自动完成编译。

4.启动

配置1 

配置2

启动成功

5. 可能出现的问题

tomcat 显示乱码,-Dfile.encoding=UTF8 或者GBK 都不行,网上各种回答都不能根本解决问题。调试VersionLoggerListener进行发现

修改-Dfile.encoding=UTF8 或者GBK 都 能起效,但乱码仍然不能解决。

进入StringManager sm变量发现,local为zh_cn时,启用的属性文件本身的编码就是乱码,尝试了不少解决办法如修改eclipse的默认方式为utf-8 都不行,网上各种方式也试过。

均不好用。那我们就绕过去吧,将local设置为us不容易报错。修改启动参数,如下所示。

此时,启动显示如下:(全部英文,不再乱码)

参考资料:

【1】https://www.cnblogs.com/davidwang456/articles/11068822.html

【2】http://tomcat.apache.org/tomcat-9.0-doc/building.html

转载于:https://www.cnblogs.com/davidwang456/p/11224923.html

编译Tomcat9源码及tomcat乱码问题解决相关推荐

  1. 网页查看js源码汉字显示乱码问题解决

    网页查看js源码汉字显示乱码问题解决 参考文章: (1)网页查看js源码汉字显示乱码问题解决 (2)https://www.cnblogs.com/JulyChen/p/5997980.html (3 ...

  2. 编译Tomcat9源码【转】

    原文地址:https://www.jianshu.com/p/df4db2b80c3a 参考:http://tomcat.apache.org/tomcat-9.0-doc/building.html ...

  3. eclipse源码中文注释乱码问题解决方法

    现象 最近遇到一个比较奇怪的问题,通过eclipse的反编译软件查看源码注释会出现中文乱码的情况.如下图所示: 虽然不影响开发,但是看着这些乱码就非常不爽,经过网络查询相关资料和个人亲身实践,提供两个 ...

  4. Ubuntu12.04编译Android4.0.1源码全过程-----附wubi安装ubuntu编译android源码硬盘空间不够的问题解决

    Ubuntu12.04编译Android4.0.1源码全过程-----附wubi安装ubuntu编译android源码硬盘空间不够的问题解决 参考文章: (1)Ubuntu12.04编译Android ...

  5. Tomcat - 源码构建Tomcat 8.5.55 启动

    文章目录 官方地址 源码搭建分析 源码搭建步骤 (Maven管理) Step1. 新增maven管理文件 pom.xml Step2. 处理conf 和 webapps Step3. 导入IEDA 3 ...

  6. spring源码编译之gradle环境搭建(编译spring源码真的脑阔疼)

    官网 Gradle | Installation Gradle Distributions 下载 配置环境变量: GRADLE_HOME:D:\software\gradle-6.0.1-all\gr ...

  7. java调用clang编译的so_写Java这么久,JDK源码编译过没?编译JDK源码踩坑纪实

    好奇害死羊 很多小伙伴们做Java开发,天天写Java代码,肯定离不开Java基础环境:JDK,毕竟我们写好的Java代码也是跑在JVM虚拟机上. 一般来说,我们学Java之前,第一步就是安装JDK环 ...

  8. 在Windows和Linux上编译gRPC源码操作步骤(C++)

    gRPC最新发布版本为v1.23.0,下面以此版本为例说明在Windows和Linux下编译过程. Windows7/10 vs2103编译gRPC源码操作步骤: 1. 需要本机已安装Git.CMak ...

  9. 海思3559A上编译Valgrind源码操作步骤

    注:按照以下步骤可以在海思板子上正常编译valgrind源码并生成valgrind可执行文件,但可能还不能在海思板子上正常使用. 1. 从http://valgrind.org/downloads/? ...

最新文章

  1. mysql突然要注册_mysql跳过登陆注册,找回root密码 (window平台)
  2. android 多个应用,Android中一个应用实现多个图标的几种方式
  3. CentOS常用环境配置(MySQL、jdk、Redis、Nginx)
  4. 28. 实现 strStr()---LeetCode---JAVA(今天又是一行超人)
  5. 二维声波方程的有限差分法数值模拟
  6. java 分治法排序_分治法实现1-N的数字按字典序全排列组合 Java语言
  7. 利用css设置使超链接不能点击或者失效
  8. pivot unpivot_静态和动态SQL Pivot和Unpivot关系运算符概述
  9. 数据交换网技术---与非安全网络业务互联的新思路
  10. html修改修改头像业务,修改头像.html
  11. android calendar控件,Android Calendar自定义日历控件
  12. 程序员年薪40万被国企同学怒怼:没啥贡献,工资这么高,凭什么?
  13. 【简答题】JavaWeb必问10道简答题
  14. 怎么在html中设置天数倒计时,PPT里面怎样设置时间倒计时,求大佬指教?
  15. 短视频的海绵宝宝配音怎么制作?这可能是最容易上手的配音教程
  16. HTML点击图片实现跳转的两种方法
  17. Python pandas读取excel单元格数据,显示不全问题
  18. Node.js是什么?Node.js简介
  19. JavaScript提升(你不知道的JavaScript)
  20. 国内唯一同时发行A股B股和H股的公司

热门文章

  1. STM32F1迷你板外部中断
  2. summary_1.正念自控法
  3. php mssql image,php5连接mssql2005数据库表中的image字段图片显示
  4. python元组类型_什么是python元组数据类型
  5. tp5防止sql注入mysql_TP5框架 《防sql注入、防xss攻击》
  6. mysql批量修改http为https,墨涩网 - typecho系统升级全站https数据库批量替换网址/内容——墨涩网...
  7. 开发板通过NTS挂载在PC机中的文件夹
  8. Java:Java和c的区别
  9. Ubuntu 安装JDK8
  10. opencv 入门 demo