美好的一天,我正在尝试调试我的代码,这是使用vertx lein的clojure代码...通常我使用
export JAVA_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n"
这很完美,但我不知道为什么当我使用lein vertx project时忽略这些JAVA_OPTS,基本上远程调试器无法启动
在stackoverflow中搜索我发现比我可以使用_JAVA_OPTIONS,现在当我运行我的项目时似乎比我的jvm完美地选择了选项但是在打开套接字后失败
lein vertx run
Picked up _JAVA_OPTIONS: -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n
Listening for transport dt_socket at address: 4000
Picked up _JAVA_OPTIONS: -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n
ERROR: transport error 202: bind failed: Address already in use
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750]
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_
这不是与端口地址相关的问题,我尝试过7000,5050,5000,9000,4848,48148,18787并且每个地址都失败了...我也试过检查一下什么应用正在使用端口
netstat -ap | grep 18787
并且它是空的,基本上任何应用程序都使用相同的端口......
我也尝试将jvm_opts添加到我的project.clj
:jvm-opts ["-Xdebug" "-Xnoagent" "-Djava.compiler=NONE" "-Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n"]
它既不起作用...... 这些是我之前测试的一些选项
export JAVA_OPTS="-agentlib:jdwp=transport=dt_socket, address=1043, server=y, suspend=n"
--- src/yvertx3 » export JVM_OPTS="-agentlib:jdwp=transport=dt_socket, address=1043, server=y, suspend=n"
export JAVA_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n"
export _JAVA_OPTIONS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n"
export JAVA_OPTS="$JAVA_OPTS -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9999"
export _JAVA_OPTIONS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n"
export _JAVA_OPTIONS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n $JAVA_OPTS"
任何线索都会受到赞赏......谢谢!
答案 0 :(得分:0)
您使用的选项仅设置dt_socket
端口。要修复此错误,您应该更改vertx服务器本身使用的端口。