Pycharm启动失败原因
遇到这个问题两次了,上次出现的时以为是版本问题所以重装了Pycharm,鬼使神差居然修好了…
今天又出现这个问题的时候第一反应又准备重装,但是想着老这样也不是个办法,所以去Google了一下还真有遇到同样问题的(之前一直以为是因为我在应用内部升级之后本地安装文件夹名字依旧是先前的老版本名字导致的启动失败,所以没想着深究就重装了,看来没有无缘无故的恨啊…)。仔细观察报错的信息可以看到是java.net的问题,主要是端口发生了冲突:
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
A
s
y
n
c
S
u
p
p
l
y
.
r
u
n
(
C
o
m
p
l
e
t
a
b
l
e
F
u
t
u
r
e
.
j
a
v
a
:
1702
)
a
t
j
a
v
a
.
b
a
s
e
/
j
a
v
a
.
u
t
i
l
.
c
o
n
c
u
r
r
e
n
t
.
T
h
r
e
a
d
P
o
o
l
E
x
e
c
u
t
o
r
.
r
u
n
W
o
r
k
e
r
(
T
h
r
e
a
d
P
o
o
l
E
x
e
c
u
t
o
r
.
j
a
v
a
:
1128
)
a
t
j
a
v
a
.
b
a
s
e
/
j
a
v
a
.
u
t
i
l
.
c
o
n
c
u
r
r
e
n
t
.
T
h
r
e
a
d
P
o
o
l
E
x
e
c
u
t
o
r
AsyncSupply.run(CompletableFuture.java:1702) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor
AsyncSupply.run(CompletableFuture.java:1702)atjava.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)atjava.base/java.util.concurrent.ThreadPoolExecutorWorker.run(ThreadPoolExecutor.java:628)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1
1.
r
u
n
(
E
x
e
c
u
t
o
r
s
.
j
a
v
a
:
668
)
a
t
j
a
v
a
.
b
a
s
e
/
j
a
v
a
.
u
t
i
l
.
c
o
n
c
u
r
r
e
n
t
.
E
x
e
c
u
t
o
r
s
1.run(Executors.java:668) at java.base/java.util.concurrent.Executors
1.run(Executors.java:668)atjava.base/java.util.concurrent.ExecutorsPrivilegedThreadFactory$1
1.
r
u
n
(
E
x
e
c
u
t
o
r
s
.
j
a
v
a
:
665
)
a
t
j
a
v
a
.
b
a
s
e
/
j
a
v
a
.
s
e
c
u
r
i
t
y
.
A
c
c
e
s
s
C
o
n
t
r
o
l
l
e
r
.
d
o
P
r
i
v
i
l
e
g
e
d
(
N
a
t
i
v
e
M
e
t
h
o
d
)
a
t
j
a
v
a
.
b
a
s
e
/
j
a
v
a
.
u
t
i
l
.
c
o
n
c
u
r
r
e
n
t
.
E
x
e
c
u
t
o
r
s
1.run(Executors.java:665) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.util.concurrent.Executors
1.run(Executors.java:665)atjava.base/java.security.AccessController.doPrivileged(NativeMethod)atjava.base/java.util.concurrent.ExecutorsPrivilegedThreadFactory
1.
r
u
n
(
E
x
e
c
u
t
o
r
s
.
j
a
v
a
:
665
)
a
t
j
a
v
a
.
b
a
s
e
/
j
a
v
a
.
l
a
n
g
.
T
h
r
e
a
d
.
r
u
n
(
T
h
r
e
a
d
.
j
a
v
a
:
834
)
C
a
u
s
e
d
b
y
:
j
a
v
a
.
n
e
t
.
B
i
n
d
E
x
c
e
p
t
i
o
n
:
A
d
d
r
e
s
s
a
l
r
e
a
d
y
i
n
u
s
e
:
b
i
n
d
a
t
j
a
v
a
.
b
a
s
e
/
s
u
n
.
n
i
o
.
c
h
.
N
e
t
.
b
i
n
d
0
(
N
a
t
i
v
e
M
e
t
h
o
d
)
a
t
j
a
v
a
.
b
a
s
e
/
s
u
n
.
n
i
o
.
c
h
.
N
e
t
.
b
i
n
d
(
N
e
t
.
j
a
v
a
:
455
)
a
t
j
a
v
a
.
b
a
s
e
/
s
u
n
.
n
i
o
.
c
h
.
N
e
t
.
b
i
n
d
(
N
e
t
.
j
a
v
a
:
447
)
a
t
j
a
v
a
.
b
a
s
e
/
s
u
n
.
n
i
o
.
c
h
.
S
e
r
v
e
r
S
o
c
k
e
t
C
h
a
n
n
e
l
I
m
p
l
.
b
i
n
d
(
S
e
r
v
e
r
S
o
c
k
e
t
C
h
a
n
n
e
l
I
m
p
l
.
j
a
v
a
:
227
)
a
t
i
o
.
n
e
t
t
y
.
c
h
a
n
n
e
l
.
s
o
c
k
e
t
.
n
i
o
.
N
i
o
S
e
r
v
e
r
S
o
c
k
e
t
C
h
a
n
n
e
l
.
d
o
B
i
n
d
(
N
i
o
S
e
r
v
e
r
S
o
c
k
e
t
C
h
a
n
n
e
l
.
j
a
v
a
:
134
)
a
t
i
o
.
n
e
t
t
y
.
c
h
a
n
n
e
l
.
A
b
s
t
r
a
c
t
C
h
a
n
n
e
l
1.run(Executors.java:665) 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:134) at io.netty.channel.AbstractChannel
1.run(Executors.java:665)atjava.base/java.lang.Thread.run(Thread.java:834)Causedby:java.net.BindException:Addressalreadyinuse:bindatjava.base/sun.nio.ch.Net.bind0(NativeMethod)atjava.base/sun.nio.ch.Net.bind(Net.java:455)atjava.base/sun.nio.ch.Net.bind(Net.java:447)atjava.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:227)atio.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:134)atio.netty.channel.AbstractChannelAbstractUnsafe.bind(AbstractChannel.java:550)
at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1334)
at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:506)
at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:491)
at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:973)
at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:248)
at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:356)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
于是饮酒乐甚,扣舷而歌之乎找到了intellij官网上相关问题的帖子,下面的讨论也是热火朝天,但是有一个简单的方法引起了俺的注意
操作方法:
-
管理员身份启动命令行,输入以下命令:
net stop winnat
-
restart pycharm
手动restart,该怎么开就怎么开 -
终端输入如下命令
net start winnat
本来以为是什么野路子,没想到还真的管用,问题一下子就解决了,究其原因是重启之后winnat占据的端口号发生了改变,冲突解决了!
记录一下嘿嘿嘿,兴许以后还会用到,非常感谢这位老哥@Machuki Dancan!