栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

解决windows部署 控制台乱码问题(jar和war)

Java 更新时间:发布时间: 百科书网 趣学号
一、原因说明:
  1. windows默认是gkb编码。Linux平台默认是utf-8编码
  2. 我们的项目是utf-8编码。但是部署在windows就会出现乱码问题

二、不推荐直接修改电脑编码:(不妥解决法)

不推荐原因:UTF-8在window相当于二等公民。可以会导致其他问题!不推荐此做法

可以在tomcat修改tomcat的名称。在注册表其一个名字和tomcat一样的名称。
这样就能把这个tomcat的编码给换掉

修改名称的位置:tomcat的bin目录下的catalina.bat文件

如图:

例如:改成hello8081 就在注册表建hello8081文件夹。设置数值65001

注明:tomcat默认名称Tomcat

三、jar包部署解决方案:

第一步:我们启动项目jar包时指定其编码格式

指定方式 -Dfile.encoding=UTF-8

创建一个.bat文件和jar包位于同一目录

内容

title hello 8888
@set JAVA_HOME=D:softwareJavajdk1.8.0
@set PATH=%JAVA_HOME%bin;%JAVA_HOME%jrebin
@set JAVA_OPTS=-server -Xms2048m -Xmx2048m -Xss128k -Xmn1024m -XX:PermSize=256M -XX:MaxNewSize=521m -XX:MaxPermSize=512m -XX:+UseParallelGC -XX:ParallelGCThreads=100 -Djava.awt.headless=true
java -Dfile.encoding=UTF-8 -jar hello.jar

第二步:配置项目编码

Java项目为例:项目都有日志框架。我们只需要在日志的配置文件指定其编码就行

这边以logback的控制台编码为例:指定为GBK


	
        
        %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n 
         
		GBK
    

注明:
如果没有指定就跟项目一样的编码。像日志持久化那些编码就无需指定。
控制台因为是在windows。可以查看黑窗口的编码是GBK
所以我们控制台应该指定为GBK编码才不会乱码

Java的日志框架详细配置可以查看这篇文章==>文章入口


四、war包部署解决方案:

在tomcat指定其运行编码为utf-8

操作:

第一步:在tomcat目录下的bin文件夹下,catalina.bat,在众多rem下添加

set JAVA_OPTS=-Dfile.encoding=UTF8

如图:

第二步:在tomcat目录下的conf文件夹下,修改logging.properties控制台编码

如图:

第三步:就是配置项目日志框架。控制台编码为GBK。详细看上面Jar部署里面有说明

五、tomcat运行时报错

可能是因为找不到jdk。你没有配置成系统变量

  1. 因为catalina.bat会先去加载setclasspath.bat文件。
  2. 所以我们在setclasspath.bat指定jdk的路径
  3. 位置:tomcat的bin目录下
set JAVA_HOME=D:javajdk1.8.0_181

如图:

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/281356.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号