idea 运行java项目时,端口被占用怎么办?

idea 运行java项目时,端口被占用怎么办?

今天在运行本地项目时,发现端口被占用了,具体报错如下:

Description:
Web server failed to start. Port 9000 was already in use.

翻看历史,发现我没有写过这方面的博客,索性今天就搞一篇吧。
遇到这种情况,我首先想到的是这个端口被哪个进程占用了?
基于这个问题出发,我做了如下操作,这也是我解决这个端口被占用的其中的一个方法—杀掉占用该端口的进程。具体步骤如下:
1、先找出占用该端口是哪个进程。
1)按“win+R” 快捷键,输入cmd,进入命令窗口。
2)输入命令“netstat -ano | finstr “9000” ”,得到进程号“9328”,得到如下信息:

	C:\Users\admin>netstat -ano|findstr "9000"
	  TCP    0.0.0.0:9000           0.0.0.0:0              LISTENING       9328
	  TCP    127.0.0.1:9000         127.0.0.1:50273        FIN_WAIT_2      9328
	  TCP    127.0.0.1:9000         127.0.0.1:50275        FIN_WAIT_2      9328
	  TCP    127.0.0.1:9000         127.0.0.1:52928        FIN_WAIT_2      9328
	  TCP    127.0.0.1:9000         127.0.0.1:52929        FIN_WAIT_2      9328
	  TCP    127.0.0.1:9000         127.0.0.1:52948        FIN_WAIT_2      9328
	  TCP    127.0.0.1:9000         127.0.0.1:52949        FIN_WAIT_2      9328
	  TCP    127.0.0.1:9000         127.0.0.1:54431        FIN_WAIT_2      9328
	  TCP    127.0.0.1:9000         127.0.0.1:54432        FIN_WAIT_2      9328
	  TCP    127.0.0.1:9000         127.0.0.1:56390        ESTABLISHED     9328
	  TCP    127.0.0.1:9000         127.0.0.1:56391        ESTABLISHED     9328
	  TCP    127.0.0.1:9000         127.0.0.1:56904        ESTABLISHED     9328
	  TCP    127.0.0.1:9000         127.0.0.1:56905        ESTABLISHED     9328
	  TCP    127.0.0.1:50273        127.0.0.1:9000         CLOSE_WAIT      13464
	  TCP    127.0.0.1:50275        127.0.0.1:9000         CLOSE_WAIT      13464
	  TCP    127.0.0.1:52928        127.0.0.1:9000         CLOSE_WAIT      13464
	  TCP    127.0.0.1:52929        127.0.0.1:9000         CLOSE_WAIT      13464
	  TCP    127.0.0.1:52948        127.0.0.1:9000         CLOSE_WAIT      13464
	  TCP    127.0.0.1:52949        127.0.0.1:9000         CLOSE_WAIT      13464
	  TCP    127.0.0.1:54431        127.0.0.1:9000         CLOSE_WAIT      13464
	  TCP    127.0.0.1:54432        127.0.0.1:9000         CLOSE_WAIT      13464
	  TCP    127.0.0.1:56390        127.0.0.1:9000         ESTABLISHED     13464
	  TCP    127.0.0.1:56391        127.0.0.1:9000         ESTABLISHED     13464
	  TCP    127.0.0.1:56904        127.0.0.1:9000         ESTABLISHED     13464
	  TCP    127.0.0.1:56905        127.0.0.1:9000         ESTABLISHED     13464
	  TCP    [::]:9000              [::]:0                 LISTENING       9328

得到进程号“9328”。

TCP    0.0.0.0:9000           0.0.0.0:0              LISTENING       9328

3)输入命令“tasklist | findstr “9328” ”。

C:\Users\admin>tasklist|findstr "9328"
java.exe                      9328 Console                    1    251,624 K

找到进程号为“9328”的进程为“java.exe”。
2、既然找到了,咱们就kill it!干掉他。具体步骤如下:
1)按下快捷键“Esc+Shift+Ctrl”,打开“任务管理器”。
2)点击“详细信息”栏,在“PID”列找到进程号为“9328”的进程。
3)选中该进程,鼠标右键,点击“结束任务”即可。
端口占用问题已解决,接下来,重新启动你的项目测试下即可。

那么,还有别的方法吗? 肯定是有的。既然被占用了,那我用别的端口号不就行了。具体步骤如下:
1)找到到配置文件。由于我这里是springcloud微服务项目,所以直接到application.yml配置文件下修改即可。请注意,有的同学配置文件可能是application.properties。
2)直接修改端口号:

server:
  port: 9001

好了,完事了。是不是so easy?哈哈。
如果这篇文章你觉得可以,那就点赞关注我吧。

### 解决 Windows 下 IDEA 启动 Java 项目 8080 端口占用的问题 当在 Windows 环境下使用 IntelliJ IDEA 启动 Java 项目,如果遇到端口 8080 被占用的情况,可以采取以下方法来解决问题。 #### 方法一:更改项目的默认端口号 可以通过修改应用程序的配置文件或代码逻辑,将使用的端口号更改为其他未被占用端口。例如,在 Spring Boot 项目中,默认情况下会监听 8080 端口。可以在 `application.properties` 或 `application.yml` 文件中指定新的端口号: ```properties server.port=9090 ``` 或者对于 YAML 配置文件: ```yaml server: port: 9090 ``` 通过这种方式,可以直接避免与已占用的 8080 端口冲突[^1]。 #### 方法二:查找并终止占用端口的进程 如果希望继续使用 8080 端口,则需要找到当前正在使用此端口的程序,并将其关闭。以下是具体操作步骤: 1. 打开命令提示符(CMD),输入以下命令查看哪个进程占用了 8080 端口: ```cmd netstat -aon | findstr :8080 ``` 2. 命令执行后返回的结果可能类似于下面的内容: ``` TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 12345 ``` 其中最后一列显示的是 PID(Process ID)。 3. 使用任务管理器或其他工具结束对应的进程。也可以直接运行以下命令强制终止该进程: ```cmd taskkill /PID 12345 /F ``` 完成上述操作之后再次尝试启动您的 Java 应用即可正常工作[^4]。 #### 方法三:利用 SSL 提升安全性的同调整连接设置 假如是因为安全原因导致某些服务固定绑定到特定端口上,那么考虑引入加密机制可能是更好的办法之一。比如采用 JSSE API 来实现基于 HTTPS 的通信方式,这样不仅可以避开常见的低编号端口限制问题,还能提高数据传输的安全等级。创建 SSLEngine 示例如下所示: ```java import javax.net.ssl.SSLContext; import javax.net.ssl.SSLEngine; public class SslExample { public static void main(String[] args) throws Exception { String host = "localhost"; int port = 8443; // 更改至非标准HTTP(S)端口 SSLContext sslContext = SSLContext.getInstance("TLS"); sslContext.init(null, null, null); SSLEngine engine = sslContext.createSSLEngine(host, port); engine.setUseClientMode(true); System.out.println("Created SSLEngine for " + host + ":" + port); } } ``` 这种方法虽然复杂度稍高一些,但对于生产环境来说是非常推荐的做法[^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐先生Paul

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值