无法通过 IntelliJ 打开调试器端口

我有一个在DigitalOcean上运行的服务器和一个我想要调试的JAR文件。我首先在远程服务器上启动JAR,使用

java -jar Server.jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

但是在控制台上,我没有看到“在端口5005上侦听...”之类的输出。

当我在IntelliJ中按调试时,它说

无法打开调试器端口 (198.xxx.xxx.xx:5005): java.net.ConnectException “连接被拒绝”

这是我的IntelliJ配置:
enter image description here

我也尝试过使用,但它仍然不起作用。-Xdebug

如果我设置它,它应该等到连接调试器,但相反,它启动没有问题。suspend=y


答案 1

以调试方式启动远程 Java 进程的命令看起来是正确的。如果在启动服务器 JAR 时没有看到“Listen to Port blah”,则可能意味着未选取调试参数。快速检查这一点的另一种方法是在执行服务器 JAR 的计算机上使用 进行测试。如果未使用该端口,则 将失败。telnet localhost 5005telnet

我建议您尝试以下操作,因为参数的顺序可能很重要(我稍后会为此添加一些官方证据):

java "agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005" -jar Server.jar

答案 2

这个命令对我有用:

export JAVA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:5005'

默认想法远程对话框建议:

'agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005'

将其更改为:

'agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:5005'

并发出端口 5005。