Tomcat启动相关问题(闪退乱码等)
端口冲突了,已经有其他程序占用了80、3306端口。也就是说你的电脑上已经有了一个Apache、MySQL并且正在运行。解决方案:停止已经在运行的程序(解决一次);或者卸载这个软件即可(永久解决)。
问题1:Tomcat启动闪退,或者无法启动
注意,这里分两种情况,一种是在IDEA里面启动tomcat,一个是单独用startup.bat启动tomcat。
如果是IDEA里面启动tomcat失败,需要修改IDEA的设置,参考:
错误信息
其他错误:
java: 错误: 不支持发行版本 6
java: -source 1.5 中不支持 lambda 表达式 (请使用 -source 8 或更高版本以启用 lambda 表达式)思路
有两个地方要检查,JDK版本保持一致即可。
比如统一用JDK8或者JDK9或者JDK111、File —— Settings —— Java Compiler
2、File —— Project Structure
(1)Project
(2)Modules
修改为一致以后,重新编译项目
如果是startup.bat启动tomcat失败,需要修改conf目录下的配置文件,请继续看:
原因1:Java版本不匹配(这种情况最常见)
系统默认的JDK版本和tomcat不匹配。
tomcat 8.x需要用JDK8(也就是jdk1.8)启动,过高的JDK版本启动不了,比如JDK11、JDK18
解决方法1:指定JDK运行(推荐)
单独修改tomcat启动使用的Java版本。
以apache-tomcat-8.0.22为例:
在apache-tomcat-8.0.22\bin\startup.bat开头加上一句话(加在setlocal后面)SET JAVA_HOME=E:\dev_runApp\jdk1.8.0_74
1、别照搬哈,路径替换为你的JDK实际路径
2、JAVA_HOME 路径里面绝对不能出现中文和空格!
如图:
解决方法2:修改环境变量(不推荐)
第二个解决办法,就是在Path环境变量里面设置Java8的环境变量。
(如果你的各种程序多,依赖的JDK版本不同,不建议用这个方法)
原因2:端口冲突
第二个原因是默认的8080端口被占用。
使用以下方法查看8080端口是否被占用,如果能搜到即代表端口已使用:
netstat -an|findstr 8080
解决办法
停掉原来的8080端口。
根据端口找程序的方法:
问题
phpstudy小皮面板中的Apache或MySQL启动以后自动停止
正在启动——已启动——已停止总结:最主要的原因:端口冲突
端口冲突了,已经有其他程序占用了80、3306端口。
也就是说你的电脑上已经有了一个Apache、MySQL并且正在运行。
解决方案:
停止已经在运行的程序(解决一次);
或者卸载这个软件即可(永久解决)。比如到“服务”里面停止这个服务,并且取消“自动”启动:
对于MySQL:原因1:端口冲突
解决办法:
直接到控制面板——程序中卸载安装的MySQL,名字里面有MySQL的都卸载掉。说明:
1、在网络安全课程中,我们推荐使用phpstudy的MySQL5.7。自己安装的MySQL8后续使用会有问题。
2、不要修改MySQL的默认端口(3306),如果改了,后面靶场的配置文件都要修改。对于MySQL:原因2:配置文件错误
以phpstudy中的MySQL为例,找到错误日志文件:
记事本打开:
这里指出的原因是:配置文件中有错误的变量
validate_password_policy=0
,删掉重启即可对于Apache:原因1 端口冲突
首先要找出到底是什么程序占用80端口:
根据端口号查进程,打开cmd:netstat -ano|findstr "]:80"
找到[::]:80
这一行,最后一位就是进程号这种结果不一定是正确的,注意区分:
根据进程号查进程名,把
2472
替换成你查到的进程号tasklist|findstr "2472"
管理员打开cmd
根据进程名称杀进程,把
httpd.exe
替换为你找到的进程名称:taskkill /f /t /im 进程名称
成功杀掉进程:
另一种方法:修改Apache的端口(不建议,除非其他程序必须用80端口)
注意,如果这个HTTP服务有自动启动,这个方式只能解决一次,重启以后又会出现,继续看原因2
。对于Apache:原因2:系统自带HTTP服务
操作系统上有其他的HTTP服务,这个时候你访问的localhost并不是WWW目录下的文件
管理员打开cmd,执行命令:net stop http // 停止系统http服务(停不掉也没关系) sc config http start= disabled // 禁用服务的自动启动,此处注意等号后面的空格不可少
禁用以后重启电脑
对于Apache:原因3:phpstudy安装目录有中文
phpstudy的安装路径中有中文导致的:
解决办法:
卸载phpstudy,重新安装,安装到只有英文的路径。
如果实在没办法修改,就修改conf/server.xml里面的默认端口号。
还有一种情况是System进程占用8080端口,解决参考:
80/8080端口被System系统进程占用_system占用8080端口-CSDN博客
问题2:控制台中文乱码
解决办法
打开tomcat/conf/logging.properties
搜索console
讲UTF-8修改为:
修改后重启tomcat
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)