configuring _JAVA_OPTIONS for remote debug, I always get ERROR: JDWP

configuring _JAVA_OPTIONS for remote debug, I always get ERROR: JDWP

你好,我正在尝试调试我的代码,这是一个使用 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 被忽略了,基本上远程调试器没有启动

在 Whosebug 中搜索我发现我可以使用 _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"

任何线索将不胜感激...谢谢!!

您使用的选项仅设置 dt_socket 端口。要修复此错误,您应该更改 vertx 服务器本身使用的端口。