java开发实战(第二天)

  1. 1. 端口占用问题
    1. 1.1. win10
    2. 1.2. linux
  2. 2. tomcat 配置问题
    1. 2.1. start.bat 闪退
    2. 2.2. start.bat 乱码
    3. 2.3. vscode加载tomcat
    4. 2.4. 启动报错问题
    5. 2.5. 局域网无法访问
    6. 2.6. 端口修改问题
    7. 2.7. tomcat 部署问题

端口占用问题

win10

1
2
3
4
5
6
7
8
9
10
11
12
netstat -ano 查看全部端口
CLOSED 没有使用这个套接字[netstat 无法显示closed状态]
LISTEN 套接字正在监听连接[调用listen后]
SYN_SENT 套接字正在试图主动建立连接[发送SYN后还没有收到ACK]
SYN_RECEIVED 正在处于连接的初始同步状态[收到对方的SYN,但还没收到自己发过去的SYN的ACK]
ESTABLISHED 连接已建立
CLOSE_WAIT 远程套接字已经关闭:正在等待关闭这个套接字[被动关闭的一方收到FIN]
FIN_WAIT_1 套接字已关闭,正在关闭连接[发送FIN,没有收到ACK也没有收到FIN]
CLOSING 套接字已关闭,远程套接字正在关闭,暂时挂起关闭确认[在FIN_WAIT_1状态下收到被动方的FIN]
LAST_ACK 远程套接字已关闭,正在等待本地套接字的关闭确认[被动方在CLOSE_WAIT状态下发送FIN]
FIN_WAIT_2 套接字已关闭,正在等待远程套接字关闭[在FIN_WAIT_1状态下收到发过去FIN对应的ACK]
TIME_WAIT 这个套接字已经关闭,正在等待远程套接字的关闭传送[FIN、ACK、FIN、ACK都完毕,这是主动方的最后一个状态,在过了2MSL时间后变为CLOSED状态]

netstat -ano | findstr 8080 指令的意思是找出占用8080端口的进程pid
此时发现8080端口号的pid是11441(pid是会变化的)
再次输入指令:taskkill -pid 11441 -f,回车

linux

找到端口对应的进程的pid, 比如找到的PID是17413:netstat -anp |grep 8080
kill -9 PID 17413

tomcat 配置问题

https://tomcat.apache.org/ tomcat官网
开启后访问自己的ip+:8080

start.bat 闪退

pause加到start.bat末尾

start.bat 乱码

setclasspath.bat 环境变量配置
在解压后的tomcat的conf文件夹下找到logging.properties文件,将java.util.logging.ConsoleHandler.encoding = UTF-8中的UTF-8修改为GBK。

vscode加载tomcat

下载 tomcat for java 插件 在tomcat servers中添加tomcat文件目录
C:\Users\11\AppData\Roaming\Code\User\settings.json
修改java.home为
“java.home”: “C:\Progra~1\Java\jdk-11.0.10”,
即可正常使用

启动报错问题

警告: 基于APR的本地库加载失败.错误报告为[no tcnative-1 in java.library.path:

  1. 找到Tomcat中bin目录下的 tcnative-1.dll 文件
  2. 将该文件拷贝到 C:\Windows\System32 这个目录下
    重启Tomcat,就不会报错了。我亲自试验的,是没问题。

    局域网无法访问

  3. 防火墙新建规则8080 tcp 安全访问
  4. web.xml中修改
    1
    <param-value>true</param-value>修改

    端口修改问题

    conf文件中查找8080

    tomcat 部署问题

  5. 将文件复制到webapps目录下
  6. 刷新服务器即可找到对应的web
  7. 在新建-1上部署不要动原文件