问题1:Tomcat启动闪退,或者无法启动

注意,这里分两种情况,一种是在IDEA里面启动tomcat,一个是单独用startup.bat启动tomcat。

如果是IDEA里面启动tomcat失败,需要修改IDEA的设置,参考:

错误信息

其他错误:
java: 错误: 不支持发行版本 6
java: -source 1.5 中不支持 lambda 表达式 (请使用 -source 8 或更高版本以启用 lambda 表达式)

思路

有两个地方要检查,JDK版本保持一致即可。
比如统一用JDK8或者JDK9或者JDK11

1、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

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐