热门标签: 转载 JavaScript mysql 学习 php
主页> 杂项 >

关于Wsl2和Goland运行端口冲突问题

发布时间:2021-02-22 编辑:三石兄 标签: wsl2 热度:384

解决Hyper-V和Goland同时运行导致的端口冲突问题


错误场景:

启用wsl2环境下的windows版本Docker Desktop后,再启动goland抛出异常,无法启动

错误描述:

java.util.concurrent.CompletionException: java.net.BindException: Address already in use: bind
    at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
    at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)
    at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1702)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.net.BindException: Address already in use: bind
    at java.base/sun.nio.ch.Net.bind0(Native Method)
    at java.base/sun.nio.ch.Net.bind(Net.java:455)
    at java.base/sun.nio.ch.Net.bind(Net.java:447)
    at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:227)
    at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:132)
    at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:551)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1346)
    at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:503)
    at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:488)
    at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:985)
    at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:247)
    at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:344)
    at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:510)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:518)
    at io.netty.util.concurrent.SingleThreadEventExecutor$6.run(SingleThreadEventExecutor.java:1044)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    ... 1 more

-----
JRE 11.0.5+10-b520.38 amd64 by JetBrains s.r.o
C:\Program Files\JetBrains\IntelliJ IDEA 2018.3.5\jbr


原因分析:

经过一系列分析查证和搜索大量解决方案并尝试发现,是端口冲突导致的无法启动IDEA,由于wsl2需要启用Hyper-V,当开启Hyper-V后,系统默认会分配给一些保留端口供Hyper-V使用,正好IDEA运行Tomcat需要JMX的1099端口刚好被分配给了Hyper-V,这样就导致了IDEA需要使用的端口被占用无法启动;


解决方案:

最简单粗暴的解决方案就是关闭wsl后先打开goland再启用wsl以及docker;

    关闭所有wsl系统

wsl --shutdown




相关阅读

Copyright © 2017-2020 三石兄博客 & 版权所有

蜀ICP备17023832号

195721