zoukankan      html  css  js  c++  java
  • tomcat相关

    转自:https://www.cnblogs.com/cainiaoputeng/p/11148512.html

    前言:

    验证tomcat安装成功

    安装之后:

    1.到安装目录下找startup.bat不闪退,并出现以下图2为成功安装:

    再打开谷歌浏览器输入: localhost:8080验证.

    1、解决Tomcat8启动时控制台中文乱码问题(不止是版本8,其他版本依旧适用)

    从Tomcat官网上下载下来的Tomcat,在初次运行【 binstartup.bat】  时,控制台窗体会出现下图所示的中文乱码。

    Tomcat控制台中文乱码界面

    经过查看分析,应该是Tomcat的log日志模块在记录时出现了中文字符不识别的问题。

    在Tomcat的启动文件“catalina.bat”中约215行可以看到如下:

     

    如果没有设置"%LOGGING_CONFIG%"值,则.......。

    到Tomcat根目录下“conf”子目录下的“logging.properties”文件中查看日志记录的配置,找到该文件,可发现很多的“encoding = UTF-8”配置项,因此判断是该配置项影响了Tomcat控制台的中文乱码输出:

     

    方法(1):将所有的“encoding = UTF-8”都修改为“encoding = GBK”,使其识别支持中文,保存文件修改后,再次启动Tomcat,则看到如下的正常控制台界面,中文乱码不见了。

    方法(2):加入 java.util.logging.ConsoleHandler.encoding = GBK ,保存文件修改后,再次启动Tomcat,则看到如下的正常控制台界面,中文乱码不见了。

     

    2、Tomcat启动一闪而过就消失的原因和解决方法

    原因一:

    (1)首先要搞明白启动不起来的原因。方法是在命令行下,运行startup.bat文件,这样程序就不会一闪而过,而会将启动不起来的原因打印到窗口上。

    (2)在命令行下启动tomcat的方法读者应该都很清楚,大体就是:cmd启动命令行窗口→通过cd命令到tomcat的bin目录下→运行startup.bat。

     (3)通过命令行的提示看到,这是因为电脑上没有配置JAVA_HOME或者JRE_HOME导致的。那么下面添加上JAVA_HOME和JRE_HOME。具体步骤为计算机→属性→环境变量,然后添加系统变量;

    (4)添加完JAVA_HOME和JRE_HOME两个系统变量之后,在将这两个变量放到path系统变量中,方法是,在path变量值的后面直接追加 【;%JAVA_HOME%;%JRE_HOME%】注意!分号是环境变量的分割符号,不可少。

    但是通过亲自测试,发现只配置环境变量 JAVA_HOME 即可以启动 tomcat 的 startup.bat 不发生闪退。

    如果不配置  path变量中的: %JAVA_HOME%in;  ,则无法在命令行中正常运行java、javac和java -version 命令。

    原因二:

    双击tomcat的bin目录下的startup.bat时一闪而过时,可以右键startup.bat找一个文本编辑器打开,然后在文本的最后敲上pause,保存后重新运行startup.bat,这时候窗口会留在桌面上(调试成功,把pause去掉即可)。我们可以看到DOS窗口里有错误信息。

    1. The JRE_HOME environment variable is not defined correctly This environment variableis needed to run this program

    原因:以前版本的tomcat需要JDK,现在的tomcat(本人的是7.0)只要有JRE就可以。 如果你装的tomcat的是解压版的(免安装的)那么则需要自己手动配置JRE_HOME 这个环境变量,否则,就会出现上面的错误。 解决办法:右击 我的电脑 - 高级 - 环境变量, 在系统变量中 新建 变量名:JRE_HOME 变量值:C:Program FilesJavajre7(根据你自己的JDK安装目录寻找JRE)

    2.Neither the JAVA_HOME nor the JRE_HOME environment variable is defined Tomcat的startup.bat,

    它调用了catalina.bat,而catalina.bat则调用了setclasspath.bat,只要在setclasspath.bat的开头声明环境变量(红色两行)就可以了,原因是后来较新版本安装完不会自动登记环境变量JAVA_HOME,JRE_HOME。 给setclasspath.bat的开头添加红色标记部分,如下: rem ___________________________ rem Set CLASSPATH and Java options rem rem rem ____________________________ set JAVA_HOME=C:Program FilesJavajdk1.6.0_20 set JRE_HOME=C:Program FilesJavajre6 rem Make sure prerequisite environment variables are set if not “%JAVA_HOME%” == “” goto gotJdkHome if not “%JRE_HOME%” == “” goto gotJreHome echo Neither the JAVA_HOME nor the JRE_HOME environment variable is defined echo At least one of these environment variable is needed to run this program goto exit

    这样在每次运行startup.bat时就自动注册了JAVA_HOME,JRE_HOME。 运行startup.bat,提示“信息:Server startup in xxxxx ms” OK 大功告成。

    3. Cannot find “”d:apache-tomcat-6.0.32”insetclasspath.bat”

    这个时候,可能是CATALINA_HOME的值在某个地方被写死了,像我的绿色版tomcat在bin文件下多了一个setenv.bat的文件,打开一看果然是在这里面被写死了CATALINA_HOME的路径,这应该是为了某种原因被人后加上的设置文件,把这个文件删除之后,tomcat可以正常运行了。

    原因三:

    如果你的环境配置没有错,也没有上述两种错误那么可能你已经启动了一个Tomcat,这样两个Tomcat会产生冲突。你可以在com中查看8080是否被占用:

    (1)我们可以使用如下命令来找出哪个进程占用5037这个端口

            netstat -ano | findstr "5037"

    (2)最后一列为占用5037端口的进程号,PID为9060,那么我们可以在任务管理器里查看改进程号所对应的进程,直接右击结束该进程即可。或者使用上面提到的taskkill命令,它主要是用来批量删除某些进程,当然,也可以用来删除一个进程,使用方法如下:

    taskkill /PID 9060 /F        其中,/F主要是用来强制删除。

    你也可以查看Tomcat自带的打印日志在你的Tomcat的logs文件夹下如果出现了

    七月 04, 2018 10:40:20 上午 org.apache.catalina.core.StandardService initInternal

    严重: Failed to initialize connector [Connector[HTTP/1.1-8080]]

    org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-8080]]

    类似的错误可能已经运行了一个Tomcat你可以在服务中把它终止掉,然后再运行自己的Tomcat就可以了。

    3、启动 tomcat 后提示警告:Can't load AMD 64-bit .dll on a IA 32-bit platform

    将tomcatin下的 tcnative-1.dll 文件删除掉,则报如下警告,并未解决问题。

    问题所在:
    主要是在64位的系统下安装的虚拟机是32位的,不能在64位的平台下加载32位的虚拟机,只能加载64位的。由于tomcat在安装的时候加载的32虚拟机的地址,它找到的是32位的虚拟机,所以它提示不能加载64位的虚拟机(在目录下没有64的虚拟机)。

    解决之道:

    下载一个64的JDK安装,修改JAVA_HOME。

    如果设置上面之后还有问题,那么下载32/64位集合体的Tomcat:

    地址:http://tomcat.apache.org/download-70.cgi

    32-bit/64-bit Windows Service Installer (pgpmd5)

     直接下载地址:http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.56/bin/apache-tomcat-7.0.56.exe

    安装这个Tomcat之后,再运行就不会出错了。

    如何查看jdk的版本是32位还是64位

    在cmd下输入java  -version来查看,如果没有标明是多少位的,默认一般是32位的。

     

    下图为64位:

    这里写图片描述

    (箭头指示jdk版本)

    还有一种比较粗旷的方式 这个从CPU说起: IA-32架构与IA-64架构 IA是Intel Architecture(英特尔体系结构)的英语缩写 IA-32架构有32位CPU也有64位CPU。(我们经常使用的CPU)

    IA-64架构下有Intel64位的CPU(只有服务器使用的CPU)

    IA-32架构: 本架构的CPU都采用X86指令 Intel,AMD,Cyrix等厂家都生产X86指令集的CPU 其中32位(x86-32)的CPU有i80386,i80486,i80586,i80686,统称i80X86,简称x86 其中64位(x86-64)的CPU有:2006年以后生产的PC机CPU都是64位的,简称x64 最大的优点在于可以全面兼容以前32位x86指令的应用程序,他们都是IA-32架构。

    由此可以简单判断一些软件(svn,jdk等)的版本位数,要看软件默认安装的位置来进行判断,如下图:

    这里写图片描述

    Program  Files默认安装路径在此文件下是64位数的版本; 
    Program  Files(x86)默认安装路径在此文件下是32位数的版本;

    如何查看tomcat的位数

     

    2】在cmd命令行界面,运行tomcat/bin下的 version.bat 文件

    其中  Architechture参数值就是位数。  server number 参数值就是tomcat版本号。

  • 相关阅读:
    初识 visJs (基于html5 canvas开发的可视化框架)
    VueJs
    VueJS 使用i18n做国际化切换中英文
    vue-cli项目接口地址可配置化(多环境部署)一处修改多处适用
    vue + element-ui 制作下拉菜单(可配置路由、可根据路由高亮list、可刷新自动展开定位路由)
    vue-cli -- > 项目基本构建的方法
    javascript代码工具库
    HTML5新功能之六 《Web通信、WebSockets和跨文档消息传输》
    《响应式Web设计:HTML5和CSS3实战》 读书笔记
    HTML5新功能之二 《Geolocation获取地理位置》
  • 原文地址:https://www.cnblogs.com/shangshen/p/11149689.html
Copyright © 2011-2022 走看看