Java 远程调试不适用于 Eclipse 或 IntelliJ。需要帮助

Java remote debugging not working with Eclipse or IntelliJ . Help needed

我这里有一个非常简单的项目https://github.com/sherry-ummen/javadebuggingnotworking

我正在尝试进行远程调试,因为我需要它来处理类似的情况,所以我想用一个简单的方法来尝试一下。

我在第 12 行设置了一个断点。maven 构建来创建 jar 并将远程调试配置设置为此
为了开始调试,我使用了以下命令

java -Xdebug -Xrunjdwp:transport=dt_socket,address=8998,server=y -jar my-debug-test-0.0.1-SNAPSHOT.jar

现在,当进程正在侦听时,我转到 IntelliJ 并按远程调试配置,然后我在 Intellij 输出中收到以下消息 window 而没有命中断点。

连接到目标VM,地址:'localhost:8998',传输:'socket'

与目标虚拟机断开连接,地址:'localhost:8998',传输:'socket'

并且在我启动 java 的控制台 window 中,进程停止并显示以下消息

C:\Users\sherry.ummen\eclipse-workspace\my-debug-test\target>java -Xdebug -
Xrunjdwp:transport=dt_socket,address=8998,server=y -jar my-debug-test-0.0.1-
SNAPSHOT.jar
Listening for transport dt_socket at address: 8998
no main manifest attribute, in my-debug-test-0.0.1-SNAPSHOT.jar

现在,我真的不明白为什么它会这样,而且我没有看到我的断点命中。这可能是一个非常愚蠢的问题,但我的 Java 开发技能非常有限,所以对我来说这很头疼。

在您的情况下,IDEA 或 Eclipse 已成功连接到进程。 问题是,在你的 jar 中没有定义 main class (应该在清单中定义)。 所以 java 进程将立即停止,因为它没有主要 class 到 运行.

在 jar 中,META-INF 文件中,应该有一个文件名 MANIFEST.MF,在那个文件中应该有这样一个条目

Main-Class: mypackage.MyMainClass