【发布时间】:2019-05-08 14:48:24
【问题描述】:
目前我使用以下命令行参数启动 Java 虚拟机
-Xint -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,address=4000,suspend=n
这允许我将调试器附加到该 JVM,同时 JVM 和调试器在同一台机器上。但是,它也允许远程调试该会话。我的系统管理员向我指出这可能不安全并且不希望我这样做。
但是我需要更改哪些命令行参数,以便我可以将本地机器上的调试器附加到该 JVM,而不是远程的?
我正在使用 Java 8,但如果需要的话,我很乐意迁移到 Java 9。
【问题讨论】:
-
如果您在 Windows 上,您还可以使用
dt_shmem而不是dt_socket通过共享内存进行调试(仅当 JVM 和调试器在同一台机器上时才有效)IIRC,但是我自己从来没有用过,所以...... -
我相信 Java 9 的默认行为是将连接限制在“localhost”接口,因此您只能从同一个框进行连接。如果要在所有接口上打开该端口,则需要明确通知它。所以在 Java 9 中,默认行为就是你想要的。
-
我不得不承认,我不明白你的昵称的双关语。是不是像p45……美国第45任总统?因此,您认为自己“低”?如果是这样,请不要这样做。你很有礼貌,当你不知道的时候你会承认。因此,您比人类的悲伤借口要好得多。
标签: java java-8 remote-debugging