编译Tomcat9源码及tomcat乱码问题解决

因工作原因,需要从根本上优化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

时间: 2024-10-10 03:35:42

编译Tomcat9源码及tomcat乱码问题解决的相关文章

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

本文转至  http://blog.csdn.net/yanzi1225627/article/details/9263097 昨晚在编译源码,make一段时间之后报错如下: [html] view plaincopyprint? # A fatal error has been detected by the Java Runtime Environment: # #  SIGSEGV (0xb) at pc=0x40362d33, pid=12195, tid=2835454784 # # 

Docker环境下编译android源码|编译可运行xposed

前言 因为我的电脑是Ubuntu18的版本,成功编译xposed刷入手机之后无法启动,检查了所有的环境,没有问题,发现可能是Ubuntu系统的兼容库的问题,但是我不可能重新安装系统吧,毕竟有点蠢,所以最好的方式就是在docker的Ubuntu容器中编译,统一环境问题,也可以隔离环境平时 工作开发环境,下面开始操作 安装配置docker docker加速,采用对国人友好的镜像地址 通过修改daemon配置文件/etc/docker/daemon.json来使用加速器,执行以下命令: 您可以配置 D

在win7 下编译MySQL源码

MySQL MySQL是一款优秀的开源数据库,在阿里.网易等各个互联网公司中有着广泛的应用.尽管各种NoSQL大行其道,但是关系型数据库依然必不可少. 作为一个新手,在Win7下用源码安装MySql数据库并不容易.我自己都折腾了好几天.今天把安装过程记录下来,其一是为了方便自己以后学习,其二则是分享过程,让学习者能够从我这篇文章中受益. 1. 编译环境及源码下载 编译环境:Visual Studio 2010 (Win7 32位) 编译工具: bison-2.4.1-setup.exe 下载地址

CentOS6.5上编译OpenJDK7源码

本文地址:http://www.cnblogs.com/wuyudong/p/build-openjdk7.html,转载请注明源地址. 采用开源的OpenJDK版本,获取其源码的方式有两种: 通Mercurial代码版本管理工具从Repository中直接取得源码,但是速度太慢,需要花费数小时 直接下载官方打包好的源码包(推荐) 下载源码openjdk-7u6-fcs-src-b24-28_aug_2012.zip,解压,下载地址如下: http://www.java.net/download

【转】模块编译Android源码方法

原文网址:http://blog.csdn.net/androidlover1991/article/details/17014055 实际开发中,并不需要每次都编译所有源代码,只需要编译自己修改的模块即可.Android 的编译系统提供了强大的机制支持单独模块的编译,而且十分简单.Android 提供三种方式用于编译单独模块 :1.make 模块名2.mm 来自于 envsetup.sh 脚本中注册的函数3. mmm 来自于 envsetup.sh 脚本中注册的函数下面将分别介绍这三种方法.1

编译Hadoop源码

背景: 在阅读hadoop源代码过程中会发现部分类或者函数无法找到,这是由于Hadoop2.0使用了Protocol Buffers定义了RPC协议, 而这些Protocol Buffers文件在Maven编译源代码才会生成对应的java类,因此若其他类在源代码中引用这些类则暂时无法找到. 解决办法就是先对hadoop源码进行编译,再导入eclipse工程. 一.基础软件: 软件 下载地址 推荐版本 JDK http://www.oracle.com/technetwork/java/javas

Windows,linux下编译qt源码(比较简单)

一.linux下静态编译qt源码 1.取到qt源码并解压到文件夹 2.cd到qt目录下 3.使用configure生成makefile ./configure–prefix /opt/qtstatic –static –release -nomake examples  --nomake demos-nomake docs -continue 4.待执行完之后执行make 5.makeinstall 参考:http://www.cnblogs.com/qianyuming/archive/201

如何在Windows上编译wireshark源码

在深受了几天编译wireshark源码的痛苦后,记录下自己编译wireshark的经验,希望能给今后需要编译wireshark的人一些帮助.这个方法是能编译最新的wireshark源码,现在网上找的一些方法都是旧的一些方法,编译最新的wireshark是行不通的.我参考的是一个英文的说明文档,如果阅读此文档的人没有困难的话,可以就此英文文档说明进行编译.附上地址:https://www.wireshark.org/docs/wsdg_html_chunked/ChSetupWin32.html

使用Maven 编译 storm 源码可能碰到下载依赖jar 的问题

网上很多文件使用 lein 编译 storm 源码,但是我下载的版本 apache-storm-0.9.2-incubating 中没有lein 工程文件,而是有 pom.xml,可以使用maven 编译. 在storm 工程的最上层目录执行: mvn package -DskipTests=true 可能会碰到错误如下描述(jackson-core-2.0.6 只是一个例子): Failed to execute goal org.apache.maven.plugins:maven-remo