java - 将 IntelliJ IDEA 调试器附加到远程 java 服务器运行进程

标签 java debugging intellij-idea

我使用以下命令在 Ubuntu 虚拟机上运行 Java 应用程序:

java -showversion -server -Xmx512M -Drps.home=${RPS_HOME} \
-Dcontainer.host=${CONTAINER_HOST} \
-Djava.util.logging.config.file=$4 \
-classpath ${RPS_LIBS} com.softel.rps.impl.core.SPEngine ${CONFIG} \
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9999

我使用命令打开了端口 9999(VirtualBox 中的也是转发端口):

sudo ufw allow 9999/tcp

我尝试使用 IntelliJ IDEA 附加调试器: IDEA debug

最后我遇到了错误

IOException "handshake failed - connection prematurally closed"

我在远程调试方面经验不是很丰富。你能告诉我是否可以将调试器附加到 java -server 进程?

最佳答案

尝试先指定 -agentlib 选项:

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9999
-showversion -server -Xmx512M -Drps.home=${RPS_HOME} \
-Dcontainer.host=${CONTAINER_HOST} \
-Djava.util.logging.config.file=$4 \
-classpath ${RPS_LIBS} com.softel.rps.impl.core.SPEngine ${CONFIG}

关于java - 将 IntelliJ IDEA 调试器附加到远程 java 服务器运行进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45281396/

相关文章:

java - jvm如何处理java中的抽象类

java - 为什么 Libgdx 的表不接受缩放操作?

html - 提交断点 - Chrome 开发者工具

gdb - 如何对程序进行双向或反向调试?

intellij-idea - 在 IntelliJ IDEA 中重命名项目

java - JNI AttachNativeThread 在 Linux 上总是失败并返回 -1 值

java - Spring默认页面不经过Controller类

sql - 追踪神秘更新 SQL 的技巧?

java.lang.NullPointerException 错误 - Intellij IDEA、Selenium、Java

java - 在 Maven 中,如何引用文件系统上该位置不存在的父 pom?